《C/C++算法從菜鳥到達人》是2020年機械工業出版社出版的圖書。
基本介紹
- 中文名:C/C++算法從菜鳥到達人
- 出版時間:2020年10月1日
- 出版社:機械工業出版社
- ISBN:9787111658528
內容簡介,圖書目錄,作者簡介,
內容簡介
《C/C++算法從菜鳥到達人》用言簡意賅的語言介紹了算法的基本概念、五種經典的算法思想、重要的數據結構以及實踐中常用的幾種算法。本書中每章內容都包括了基本概念、實現方式、具體套用以及近年相關的面試真題。每一種算法思想中的面試真題都提供了相應的原始碼,可供讀者運行,從而達到理論與實踐並重的目的。《C/C++算法從菜鳥到達人》從算法基本分析到算法基本思想,再到具體套用及大量面試真題,內容全面,條理清楚,語言通俗。本書對計算機及相關專業本科生及研究生的面試、筆試將有所幫助;此外,計算機科學相關領域的工程師以及愛好者也可以將本書當作技術參考書籍,在需要時找到所需算法的相關內容直接套用或得到啟示;當然,對計算機科學感興趣的高中生以及項目經理也可以閱讀本書,從而開啟算法世界的大門。
圖書目錄
前言
第一部分 算法基礎/1
第1章 算法綜述/2
1.1 算法在計算機系統中的作用/2
1.1.1 算法的定義/2
1.1.2 算法的地位/2
1.1.3 一個簡單的算法/3
1.2 偽代碼的約定/4
第2章 算法分析/6
2.1 精確效率分析/6
2.2 漸進效率分析/8
2.2.1 漸進記號/9
2.2.2 漸進記號的套用/10
2.3 遞歸式求解/15
第二部分 經典算法思想/17
第3章 遞歸與分治/18
3.1 遞歸的概念/18
3.2 分治法/22
3.3 分治法的套用/24
3.4 達人修煉/26
第4章 動態規划算法/55
4.1 動態規劃基礎/55
4.1.1 動態規劃基本思想/55
4.1.2 動態規划算法舉例——最長公共子序列/55
4.2 動態規划算法分析/59
4.2.1 最優子結構/59
4.2.2 重疊子問題/60
4.3 動態規划算法的套用/60
4.3.1 0-1背包問題/60
4.3.2 石子歸併/62
4.3.3 常用動態規劃類問題/65
4.4 達人修煉真題/66
第5章 貪心算法/90
5.1 貪心算法基礎/90
5.1.1 貪心算法基本思想/90
5.1.2 貪心算法舉例——裝載問題/90
5.2 貪心算法的分析/91
5.3 貪心算法的套用/92
5.3.1 普通背包問題/92
5.3.2 活動安排問題/94
5.3.3 紀念品分組/96
5.4 達人修煉真題/99
第6章 回溯法/103
6.1 回溯法基本概念與算法框架/103
6.1.1 基本思路/103
6.1.2 回溯法的實現/105
6.2 回溯法的套用/106
6.2.1 0-1背包問題/106
6.2.2 八皇后問題/108
6.2.3 一摞烙餅的排序/110
6.3 達人修煉真題/113
第7章 分支界限法/116
7.1 分支界限法概念與算法框架/116
7.1.1 分支界限法基本思想/116
7.1.2 算法框架與分析/117
7.1.3 一個簡單的例子(0-1背包問題)/119
7.2 分支界限法的套用/121
7.2.1 TSP問題/121
7.2.2 多段圖的最短路徑問題/125
7.2.3 任務分配問題/127
7.3 達人修煉真題/129
第三部分 重要數據結構/136
第8章 棧與佇列/137
8.1 棧/137
8.2 佇列/140
8.3 達人修煉真題/143
第9章 鍊表/164
9.1 鍊表概述/164
9.2 鍊表的操作/165
9.3 達人修煉真題/168
第10章 樹與二叉樹/176
10.1 樹的概念與定義/176
10.1.1 基本概念/176
10.1.2 樹的表示/177
10.2 二叉樹/178
10.2.1 基本概念/178
10.2.2 二叉樹的存儲結構/179
10.2.3 遍歷二叉樹和線索二叉樹/180
10.3 樹、二叉樹和森林/184
10.4 達人修煉真題/189
第11章 散列表/197
11.1 散列表概述/197
11.2 散列表的套用/200
11.3 達人修煉真題/202
第12章 並查集/219
12.1 並查集基本思想/219
12.1.1 並查集概念/220
12.1.2 並查集的實現/220
12.1.3 帶權並查集/224
12.2 並查集的套用/226
12.2.1 食物鏈/226
12.2.2 Kruskal最小生成樹算法/228
12.3 達人修煉真題/230
第13章 點陣圖/233
13.1 點陣圖基本概念/233
13.2 點陣圖法的套用/238
13.2.1 位運算常見套用/238
13.2.2 點陣圖法在大數據處理中的套用/244
13.3 達人修煉真題/245
第四部分 常用算法/251
第14章 排序算法/252
14.1 插入排序/252
14.2 選擇排序/257
14.3 交換排序/261
14.4 歸併排序/266
14.5 桶排序/基數排序/267
14.6 達人修煉真題/270
第15章 查找算法/275
15.1 基本概念/275
15.2 靜態查找/276
15.3 動態查找/279
15.4 散列查找/286
15.5 達人修煉真題/286
第16章 字元串匹配算法/292
16.1 簡單字元串匹配/292
16.2 KMP算法/293
16.3 BM算法/296
16.4 SUNDAY算法/297
16.5 達人修煉真題/298
結束語/313
算法相關書籍推薦/313
作者簡介
郭晶晶,西安電子科技大學計算機科學與技術博士,2014年至2015年于丹麥科技大學(DTU)套用數學與計算機科學系從事博士研究工作,現任職於西安電子科技大學網路與信息安全學院,主持國家自然科學基金、航空科學基金,參與科技部重點研發計畫項目等多項科研項目,研究方向包括信任管理、車載網路安全、人工智慧系統安全等,目前在IEEE Internet of Things Journal, IEEE Transaction of Vehicle Technology 等國內外知名學術期刊發表論文十餘篇,對算法有著深刻的理解,精通C、C++等多種高級程式設計語言。