妙趣橫生的算法(C++語言實現)

《妙趣橫生的算法(C++語言實現)》是清華大學出版社出版的一款教育性書籍。

基本介紹

  • 書名:妙趣橫生的算法(C++語言實現)
  • ISBN:9787302367604
  • 定價:平裝 59.8元
  • 出版時間:2012年9月25日
  • 裝幀:平裝
  • 印次:1-1
基本信息,內容簡介,篇幅介紹,目錄,

基本信息

妙趣橫生的算法(C++語言實現)
作者:胡浩 等
定價:59.80元
印次:1-1
ISBN:9787302367604
出版日期:2014.10.01

內容簡介

本書以通俗易懂的語言深入淺出地介紹了常用的數據結構算法知識。
在講解算法理論時,結合實際編程環境,配合精選的例題,利用C++語言將算法理論轉換為代碼,以加深讀者對各種算法的特點和難點的理解,並能更好地掌握算法的套用。
另外,作者為書中的重點內容錄製了高清教學視頻,便於讀者高效、直觀地學習。

篇幅介紹

本書分為4篇,12章節。
第1篇是基礎知識篇,主要介紹常用的數據結構。
第2篇是基礎算法篇,主要介紹算法的一些基礎理論和常用的經典基礎算法,包含算法的數學基礎、排序算法、查找算法等。
第3篇是高級算法篇,主要介紹難度較高的一些算法,包括高級圖算法、動態規劃、貪心算法等。其中,高級圖算法是重點,用途很廣,是在第3章圖結構的基礎上深入分析圖結構在工程套用中的作用和常用算法思想,包括拓撲排序和最小生成樹等。
第4篇是算法實戰篇,以實例分析為主,包含大量的數學套用方面的算法題和面試中常見的算法題。本篇是對本書算法理論知識的總結和實踐,有較高的實用性。
本書特別適合算法入門人員和愛好者閱讀,也適合有一定C++編程基礎的人員作為進階讀物。另外,本書還適合相關院校作為教材使用。對於參加IT企業面試的程式設計師和各種程式設計選拔賽及信息學競賽的參賽者,本書也是一本很好的參考讀物。

目錄

第1篇基礎知識篇
第1章基礎數據結構(教學視頻:26分鐘) 2
1.1順序表 2
1.1.1順序表的定義 2
1.1.2順序表的基本操作 3
1.1.3實例套用與分析 6
1.2鍊表 8
1.2.1鍊表的定義 8
1.2.2鍊表基本操作 10
1.2.3雙向鍊表 13
1.2.4循環鍊表 17
1.2.5實例套用與分析 20
1.3棧 25
1.3.1棧的定義 25
1.3.2棧的基本操作 26
1.3.3實例套用與分析 26
1.4佇列 30
1.4.1佇列的定義 30
1.4.2佇列的基本操作 31
1.4.3實例套用與分析 31
1.5散列表 36
1.5.1散列表的定義 36
1.5.2散列函式 36
1.5.3基於散列的查找 37
1.5.4實例套用與分析 39
第2章樹結構(教學視頻:43分鐘) 43
2.1樹結構簡介 43
2.1.1樹的定義 43
2.1.2樹的邏輯表示 44
2.1.3基本術語 44
2.1.4樹的性質 45
2.1.5樹的基本操作 45
2.1.6樹與森林 46
2.1.7實例套用與分析 47
2.2二叉樹 49
2.2.1二叉樹的定義 50
2.2.2二叉樹的性質 51
2.2.3二叉樹的存儲結構 51
2.2.4二叉樹的基本操作 54
2.2.5實例套用與分析 64
2.3線索二叉樹 66
2.3.1線索二叉樹的定義 66
2.3.2線索二叉樹的基本操作 67
2.4二叉查找樹 70
2.4.1二叉查找樹的定義 70
2.4.2二叉查找樹的基本操作 71
2.4.3實例套用與分析 74
2.5紅黑樹 78
2.5.1紅黑樹的定義 78
2.5.2紅黑樹的基本操作 79
2.6B樹 89
2.6.1B樹的定義 89
2.6.2B樹的基本操作 91
第3章圖結構(教學視頻:34分鐘) 93
3.1圖結構簡介 93
3.2圖的存儲結構 94
3.2.1鄰接矩陣存儲 94
3.2.2鄰接表存儲 96
3.3圖的基本操作和圖的遍歷 97
3.3.1圖的基本操作 97
3.3.2深度優先遍歷 100
3.3.3廣度優先遍歷 101
3.3.4實例套用與分析 102
第2篇基礎算法篇
第4章算法入門(教學視頻:30分鐘) 106
4.1什麼是算法 106
4.2算法的數學基礎 106
4.2.1算法分析 106
4.2.2函式增長率 108
4.3基本算法思想 108
4.3.1分治法 108
4.3.2遞歸式 109
4.3.3回溯法 110
4.3.4窮舉法 110
4.3.5隨機算法 111
4.4基礎算法套用實例 111
第5章排序算法(教學視頻:49分鐘) 128
5.1插入排序 128
5.1.1算法描述 128
5.1.2算法實現 129
5.1.3套用實例與分析 131
5.2冒泡排序 132
5.2.1算法描述 132
5.2.2算法實現 133
5.2.3套用實例與分析 134
5.3快速排序 136
5.3.1算法描述 136
5.3.2算法實現 137
5.3.3套用實例與分析 139
5.4歸併排序 141
5.4.1算法描述 141
5.4.2算法實現 143
5.4.3套用實例與分析 145
5.5希爾排序 146
5.5.1算法描述 146
5.5.2算法實現 147
5.5.3套用實例與分析 148
5.6選擇排序 149
5.6.1算法描述 149
5.6.2算法實現 150
5.6.3套用實例與分析 151
5.7堆排序 152
5.7.1堆 152
5.7.2堆排序算法描述 153
5.7.3算法實現 154
5.7.4套用實例與分析 155
5.8計數排序 158
5.8.1算法描述 158
5.8.2算法實現 159
5.8.3套用實例與分析 160
5.9基數排序 162
5.9.1算法描述 162
5.9.2算法實現 163
5.9.3套用實例與分析 165
5.10桶排序 166
5.10.1算法描述 166
5.10.2算法實現 168
5.10.3套用實例與分析 169
5.11排序算法的比較和選擇 172
5.11.1排序算法的性能比較 172
5.11.2排序算法的選擇標準 172
第6章查找算法(教學視頻:22分鐘) 174
6.1順序查找 174
6.1.1算法描述 174
6.1.2算法實現 174
6.1.3套用實例與分析 175
6.2二分查找 176
6.2.1算法描述 176
6.2.2算法實現 176
6.2.3實例套用與分析 177
6.3二叉查找樹 178
6.3.1二叉查找樹的定義 178
6.3.2二叉查找樹的基本操作回顧 180
6.3.3實例套用與分析 183
6.4分塊查找 185
6.4.1算法描述 185
6.4.2算法實現 186
6.5B樹查找算法 187
6.5.1算法描述 187
6.5.2算法實現 188
6.5.3擴展——B+樹簡介 188
6.6哈希查找 189
6.6.1算法描述 189
6.6.2算法實現 190
6.6.3實例套用及分析 192
第3篇高級算法篇
第7章高級圖算法(教學視頻:30分鐘) 196
7.1拓撲排序 196
7.1.1算法描述 196
7.1.2算法實現 197
7.1.3實例分析與套用 201
7.2最小生成樹 205
7.2.1算法描述 206
7.2.2算法實現 206
7.3單源最短路徑 215
7.3.1算法描述 215
7.3.2算法實現 217
7.3.3套用實例與分析 220
7.4每對頂點間的最短路徑 222
7.4.1算法描述 222
7.4.2算法實現 223
7.4.3套用實例與分析 225
7.5網路流 225
7.5.1流網路 225
7.5.2Ford-Fulkerson算法描述 227
7.5.3Ford-Fulkerson算法的實現 230
第8章動態規劃(教學視頻:17分鐘) 232
8.1動態規劃基礎 232
8.1.1動態規劃思想引例 233
8.1.2動態規劃理論基礎 236
8.2動態規劃套用實例分析 237
8.2.1矩陣鏈乘法問題 237
8.2.2最長公共子序列問題 240
8.2.3背包問題 242
8.2.4求三角形最佳路徑問題 246
8.2.5計算劃分方案種類數問題 247
8.2.6設計競賽題目問題 248
8.2.7雙人遊戲策略問題 249
8.2.8音樂CD最大曲目數問題 250
8.2.9求Jerry最快到達的時間問題 251
8.2.10陪審團人選問題 254
第9章貪心算法(教學視頻:21分鐘) 257
9.1貪心算法概述 257
9.1.1算法描述 257
9.1.2算法原理 263
9.2套用實例與分析 264
9.2.1活動選擇問題 264
9.2.2任務調度問題 268
9.2.3閉區間不相交 269
9.2.4會場安排問題 270
9.2.5貪心算法在求最小生成樹的套用 272
第10章綜合趣味算法(教學視頻:34分鐘) 281
10.1矩陣運算 281
10.1.1矩陣的性質 281
10.1.2Strassen算法求矩陣乘積 285
10.2字元串算法 289
10.2.1樸素字元串匹配算法 289
10.2.2Rabin-Karp算法 290
10.3數論有關的基本算法 292
10.3.1基本數論概念 292
10.3.2求解最大公約數 293
10.3.3尋找素數 294
10.3.4整數的因子分解 297
第4篇算法實戰篇
第11章數學趣題解決方法(教學視頻:23分鐘) 304
11.1求兩個數的最大公約數和最低公倍數 304
11.2魔幻方陣的解法 305
11.3廣場該建多大 309
11.4水仙花數 312
11.5通向女友之路 313
11.6八皇后問題 316
11.7洗撲克問題 320
11.8約瑟夫問題 321
11.9格雷碼 325
11.10老鼠走迷宮 326
11.11騎士走棋盤 329
11.12三色球 331
11.13漢諾塔問題 333
11.14細胞的遊戲 335
11.15超長整數加法 339
11.16阿姆斯壯數 342
11.17篩選求素數 343
11.18驗證角谷猜想 344
11.19找出說謊人 345
11.20超級病毒 347
11.21數字的分解 349
11.22尋找完美數 350
11.23二維矩陣轉一維矩陣 353
11.24求解低階定積分 354
11.25疊代法開平方運算 357
11.26牛頓法解方程 358
11.27求解微分方程 360
11.28求解線性方程組 361
11.29梯形法求解定積分 363
第12章面試算法題精粹(教學視頻:24分鐘) 365
12.1常見基礎題精粹 365
12.2常見算法編程題精粹 372
12.2.1遍歷一次求取單鍊表的中間點 372
12.2.2實現單鍊表的排序 376
12.2.3判斷兩棵樹是否相等 378
12.2.4尋找重複率最高的簡訊 378
12.2.5實現strcpy()函式 382
12.2.6字元串常見試題 383
12.2.7實現循環移動 386
12.3面試進階問題 389
12.3.1尋找變位詞集合 389
12.3.2咖啡罐問題 392
12.3.3判斷兩個鍊表是否相交 395
12.3.4尋找最大的“N”個數 396
12.3.5蝸牛爬桿問題 398
12.3.6判斷單鍊表里是否有環 399
12.3.7代碼括弧的校驗 399
12.3.8查找數組中的最大值和最小值 401
妙趣橫生的算法(C++語言實現)
目錄

相關詞條

熱門詞條

聯絡我們