《妙趣橫生的算法(C++語言實現)》內容豐富,生動有趣,寓教于樂,旨在幫助讀者學習數據結構和算法的相關知識,從而開闊眼界,培養編程興趣,提高編程能力,增強求職的競爭力。如果您想提高自己對算法和數據結構的理解能力,在程序設計之路上走得更遠,那么請翻開《妙趣橫生的算法(C++語言實現)》,仔細研讀吧,它將助您一臂之力。
《妙趣橫生的算法(C++語言實現)》以通俗易懂的語言深入淺出地介紹了常用的數據結構和算法知識。在講解算法理論時,結合實際編程環境,配合精選的例題,利用C++語言將算法理論轉換為代碼,以加深讀者對各種算法的特點和難點的理解,并能更好地掌握算法的應用。另外,作者為書中的重點內容錄制了高清教學視頻,便于讀者高效、直觀地學習。
《妙趣橫生的算法(C++語言實現)》共12章,分為4篇。第1篇是基礎知識篇,主要介紹常用的數據結構。第2篇是基礎算法篇,主要介紹算法的一些基礎理論和常用的經典基礎算法,包含算法的數學基礎、排序算法、查找算法等。第3篇是高級算法篇,主要介紹難度較高的一些算法,包括高級圖算法、動態規劃、貪心算法等。其中,高級圖算法是重點,用途很廣,是在第3章圖結構的基礎上深入分析圖結構在工程應用中的作用和常用算法思想,包括拓撲排序和最小生成樹等。第4篇是算法實戰篇,以實例分析為主,包含大量的數學應用方面的算法題和面試中常見的算法題。本篇是對本書算法理論知識的總結和實踐,有較高的實用性。
《妙趣橫生的算法(C++語言實現)》特別適合算法入門人員和愛好者閱讀,也適合有一定C++編程基礎的人員作為進階讀物。另外,本書還適合相關院校作為教材使用。對于參加IT企業面試的程序員和各種程序設計選拔賽及信息學競賽的參賽者,本書也是一本很好的參考讀物。
6小時教學視頻、96個趣味算法題、37個算法面試題,內容豐富,淺顯易懂!
幫您了解算法,開闊眼界,培養編程興趣,提高編程能力,增強求職的競爭力!
注重對基礎算法理論和數據結構的闡述,以夯實基礎
講解通俗易懂,并力求總結出解決各種問題的一般規律
學習梯度科學,既適合入門,也適合進一步提高和研究
基本做到了每一節都有實例,每一種算法都有實例
選取的算法例題有較強的趣味性,可極大地提高讀者的興趣
實例流程圖規范,程序注釋詳盡,并通過了測試,可以運行
實例用C++實現,既可以驗證算法理論,還可加提高C++編程水平
著名的計算機科學家沃斯(Nikiklaus Wirth)將程序設計形象地通過一個公式總結為“程序=數據結構+算法”。這一公式揭示了程序設計的本質,成為了人們進行程序設計的“黃金定律”。
要想成為一名真正專業的程序員,基本的數據結構基礎和常用的算法知識是必須要掌握的。脫離了這兩點,其編寫出來的程序一定不是健壯的好程序。然而僅僅單純地掌握一些數據結構基礎和常用算法知識也是遠遠不夠的?斩吹卣莆账^的數據結構和算法等理論知識只是紙上談兵,這些知識必須要依托于程序設計語言才能具有真正的生命力,才能夠轉化為真實的程序代碼,才能夠真正地解決實際問題。
本書便是結合C++語言介紹了日常編程實踐中常用的數據結構和算法知識,并結合實際給出了大量的編程實例,做到了理論結合實踐,讓讀者在學習算法理論的同時,可以得到C++編程方面的鍛煉,從而提高自己的編程實踐能力。
本書對每種數據結構和每種算法都秉承先進行概念介紹然后介紹理論,最后進行實例分析的步驟進行。這種循序漸進的方式更能使讀者融入算法的世界中,更容易理解書中介紹的算法理論。書中每個實例都經過了實際的編譯運行,保證了代碼的質量。在介紹每個獨立的趣味實例時,將涉及的C++語言中的知識點也都詳盡地進行了解說,使讀者在解讀程序的同時能夠對C++語言的常用語法做到融會貫通,牢固掌握。
本書特別適合有一定C++語言基礎的讀者學習和掌握算法時閱讀。為了幫助讀者更好、更快、更直觀地學習,筆者專門為書中的重點內容錄制了高清配套教學視頻。這些視頻和本書涉及的源程序及其他學習資料一起收錄于配書光盤中。
本書特色
1.注重基礎,循序漸進
本書在介紹算法知識時,注重由淺入深的漸進學習方式,注重對基礎算法和數據結構的闡述,以夯實基礎。在講解算法實例時,對一些重要的C++語言基礎知識點也進行了講解,這樣讓讀者的算法設計能力和實際編程能力可以同步提高。
2.實例豐富,生動有趣
本書以通俗易懂的語言,深入細致地介紹了使用C++語言編寫的多個算法實例,基本做到了每節都有實例,每種算法都有實例。在介紹實例的同時,將程序開發的基本原理、基本方法和基本技術融入其中。另外,本書選取的算法例題大多都有較強的趣味性,可以極大地提高讀者的學習興趣,讓讀者體會到算法學習和程序設計的樂趣。
3.講解透徹,注釋詳盡
本書按照不同類型的趣味問題進行了分類,力求將每一類問題都講解透徹并總結出解決該類問題的通用和一般的規律。書中的算法實例代碼注釋詳盡,流程圖規范,所有的示例均通過測試可以運行,對讀者有很好的參考價值。
4.視頻教學,高效直觀
本書中的重點內容和實例提供了配套教學視頻輔助講解。讀者可以先閱讀書中的內容講解,然后再結合教學視頻進行學習,可以獲得更加高效而直觀的學習效果。
本書主要內容
本書共12章,分為4篇,主要內容介紹如下。
第1篇 基礎知識篇(第1~3章)
第1章 基礎數據結構,介紹了常用數據結構的理論和應用,為算法學習打下基礎。
第2章 樹結構,介紹了一種非線性數據結構,并用C++將其模型表達出來。
第3章 圖結構,介紹了圖結構的基礎知識。
第2篇 基礎算法篇(第4~6章)
第4章 算法入門,介紹了算法的各種概念和基本思想,為進一步學習打下基礎。
第5章 排序算法,介紹了編程常用的幾種排序算法,并引用了有趣的實例加深讀者對排序算法的理解。
第6章 查找算法,介紹了常用查找算法的理論和應用,包括折半查找和B樹查找等。
第3篇 高級算法篇(第7~10章)
第7章 高級圖算法是對第3章圖結構的一個升華。本章在圖結構的基礎上詳細探討了包括拓撲排序、最短路徑在內等較難懂卻又很實用的圖算法。
第8章 動態規劃,介紹了動態規劃算法思想的原理,并引用了大量有趣的實例加以練習,讓讀者在實踐中體會動態規劃算法的設計和實現方法。
第9章 貪心算法,深入地介紹了貪心算法的理論、特點和具體應用。
第10章 綜合趣味算法,通過深入淺出的語言,詳細介紹了與數學應用有關的幾種算法,讓讀者體會到用算法思想看待數學問題的樂趣。
第4篇 算法實戰篇(第11章和第12章)
第11章 數學趣題解決算法,通過大量趣味橫生的問題和實例,引導讀者學會用算法思想看待這些生活難題,并設計出合適的算法加以解決。
第12章 面試算法題精粹,通過對精選的數十道名企面試題的詳細分析,教會讀者如何從算法的視角去看待和解決這些問題,并設計出可行的解決方案。
本書配套資源獲取方式
本書涉及的源程序及教學視頻等配套資源需要讀者自行下載。請登錄清華大學出版社的網站(www.tup.com.cm),搜索到本書頁面,按提示下載即可,也可在本書技術論壇上(www.wanjuanchina.net)的相關版式下載。
本書讀者對象
* 算法入門人員;
* 算法愛好者;
* 需要提高C++編程水平的人員;
* IT企業面試人員;
* 信息學競賽的參賽人員;
* 各種程序設計選拔賽參賽人員;
* 大中專院校的學生。
本書作者
本書由胡浩主筆編寫。其他參與編寫的人員有韓先鋒、何艷芬、李榮亮、劉德環、孫姍姍、王曉燕、楊平、楊艷艷、袁玉健、張銳、張翔、陳明、鄧睿、鞏民順、吉燕、水淼、宗志勇、安靜、曹方、曾苗苗、陳超。
如果您在閱讀本書的過程中有任何疑問,請發E-mail到bookservice2008@163.com以獲得幫助。
編者
胡浩,網絡工程師。從事軟件開發工作多年,在數據挖掘領域有較深的研究。精通算法設計,擅長數據挖掘算法。擅長C++和Java程序設計。曾經主持和參與了多個大型項目的開發,積累了豐富的開發經驗。
第1篇 基礎知識篇
第1章 基礎數據結構(教學視頻:26分鐘)
1.1 順序表
1.1.1 順序表的定義
1.1.2 順序表的基本操作
1.1.3 實例應用與分析
1.2 鏈表
1.2.1 鏈表的定義
1.2.2 鏈表基本操作
1.2.3 雙向鏈表
1.2.4 循環鏈表
1.2.5 實例應用與分析
1.3 棧
1.3.1 棧的定義
1.3.2 棧的基本操作
1.3.3 實例應用與分析
1.4 隊列
1.4.1 隊列的定義
1.4.2 隊列的基本操作
1.4.3 實例應用與分析
1.5 散列表
1.5.1 散列表的定義
1.5.2 散列函數
1.5.3 基于散列的查找
1.5.4 實例應用與分析
第2章 樹結構(教學視頻:43分鐘)
2.1 樹結構簡介
2.1.1 樹的定義
2.1.2 樹的邏輯表示
2.1.3 基本術語
2.1.4 樹的性質
2.1.5 樹的基本操作
2.1.6 樹與森林
2.1.7 實例應用與分析
2.2 二叉樹
2.2.1 二叉樹的定義
2.2.2 二叉樹的性質
2.2.3 二叉樹的存儲結構
2.2.4 二叉樹的基本操作
2.2.5 實例應用與分析
2.3 線索二叉樹
2.3.1 線索二叉樹的定義
2.3.2 線索二叉樹的基本操作
2.4 二叉查找樹
2.4.1 二叉查找樹的定義
2.4.2 二叉查找樹的基本操作
2.4.3 實例應用與分析
2.5 紅黑樹
2.5.1 紅黑樹的定義
2.5.2 紅黑樹的基本操作
2.6 B樹
2.6.1 B樹的定義
2.6.2 B樹的基本操作
第3章 圖結構(教學視頻:34分鐘)
3.1 圖結構簡介
3.2 圖的存儲結構
3.2.1 鄰接矩陣存儲
3.2.2 鄰接表存儲
3.3 圖的基本操作和圖的遍歷
3.3.1 圖的基本操作
3.3.2 深度優先遍歷
3.3.3 廣度優先遍歷
3.3.4 實例應用與分析
第2篇 基礎算法篇
第4章 算法入門(教學視頻:30分鐘)
4.1 什么是算法
4.2 算法的數學基礎
4.2.1 算法分析
4.2.2 函數增長率
……
第3篇 高級算法篇
第4篇 算法實戰篇