本書內容按照算法策略分為7章。第1章從算法之美、簡單小問題、趣味故事引入算法概念、時間復雜度、空間復雜度的概念和計算方法,以及算法設計的爆炸性增量問題,使讀者體驗算法的奧妙。第2~7章介紹經典算法的設計策略、實戰演練、算法分析及優化拓展,分別講解貪心算法、分治算法、動態規劃、回溯法、分支限界法、線性規劃和網絡流。每一種算法都有4~10個實例,共50個大型實例,包括經典的構造實例和實際應用實例,按照問題分析、算法設計、圖解、偽代碼詳解、實戰演練、算法解析及優化拓展的流程,講解清楚且通俗易懂。附錄介紹常見的數據結構及算法改進用到的相關知識,包括sort函數、優先隊列、鄰接表、并查集、四邊不等式、排列樹、貝爾曼規則、增廣路復雜性計算、zui大流zui小割定理等內容。 本書可作為程序員的學習用書,也適合從未有過編程經驗但又對算法有強烈興趣的初學者使用,同時也可作為高等院校計算機、數學及相關專業的師生用書和培訓學校的教材。
本書從算法之美娓娓道來,沒有高深的原理,也沒有枯燥的公式,通過趣味故事引出算法問題,包含50多個實例及圖解,結合學生提問,分析算法本質,并給出代碼實現的詳細過程和運行結果。 本書的特色和價值: (1)實例豐富,通俗易懂 (2)圖解,簡單有趣 (3)深入淺出,透析本質 (4)實戰演練,循序漸進 (5)網絡資源,技術支持
陳小玉,副教授,碩士,高級程序員,研究方向:智能計算、機器學習與數據挖掘。主講《數據結構》、《算法設計與分析》、《人工智能》等專業課程,并發表過多篇計算機專業論文和項目。
第1章 算法之美 1
1.1 打開算法之門 2
1.2 妙不可言—算法復雜性 2
1.3 美不勝收—魔鬼序列 9
1.4 靈魂之交—馬克思手稿中的數學題 16
1.5 算法學習瓶頸 21
1.6 你怕什么 22
第2章 貪心算法 24
2.1 人之初,性本貪 25
2.1.1 貪心本質 25
2.1.2 貪亦有道 26
2.1.3 貪心算法秘籍 26
2.2 加勒比海盜船—裝載問題 27
2.2.1 問題分析 27
2.2.2 算法設計 28
2.2.3 圖解 28
2.2.4 偽代碼詳解 29
2.2.5 實戰演練 30
2.2.6 算法解析及優化拓展 31
2.3 阿里巴巴與四十大盜—背包問題 32
2.3.1 問題分析 32
2.3.2 算法設計 33
2.3.3 圖解 33
2.3.4 偽代碼詳解 34
2.3.5 實戰演練 35
2.3.6 算法解析及優化拓展 36
2.4 高級鐘點秘書—會議安排 37
2.4.1 問題分析 38
2.4.2 算法設計 39
2.4.3 圖解 40
2.4.4 偽代碼詳解 41
2.4.5 實戰演練 42
2.4.6 算法解析及優化拓展 45
2.5 一場說走就走的旅行—最短路徑 45
2.5.1 問題分析 46
2.5.2 算法設計 46
2.5.3 圖解 47
2.5.4 偽代碼詳解 51
2.5.5 實戰演練 52
2.5.6 算法解析及優化拓展 55
2.6 神秘電報密碼—哈夫曼編碼 59
2.6.1 問題分析 60
2.6.2 算法設計 62
2.6.3 圖解 63
2.6.4 偽代碼詳解 65
2.6.5 實戰演練 74
2.6.6 算法解析及優化拓展 77
2.7 溝通無限校園網—最小生成樹 77
2.7.1 問題分析 78
2.7.2 算法設計 79
2.7.3 圖解 80
2.7.4 偽代碼詳解 87
2.7.5 實戰演練 88
2.7.6 算法解析 90
2.7.7 算法優化拓展 90
第3章 分治法 99
3.1 山高皇帝遠 100
3.1.1 治眾如治寡—分而治之 100
3.1.2 天時地利人和—分治算法要素 100
3.1.3 分治算法秘籍 101
3.2 猜數游戲—二分搜索技術 101
3.2.1 問題分析 101
3.2.2 算法設計 102
3.2.3 圖解 102
3.2.4 偽代碼詳解 103
3.2.5 實戰演練 104
3.2.6 算法解析與拓展 105
3.3 合久必分,分久必合—合并排序 107
3.3.1 問題分析 108
3.3.2 算法設計 108
3.3.3 圖解 108
3.3.4 偽代碼詳解 108
3.3.5 實戰演練 111
3.3.6 算法解析與拓展 112
3.4 兵貴神速—快速排序 113
3.4.1 問題分析 114
3.4.2 算法設計 115
3.4.3 圖解 116
3.4.4 偽代碼詳解 117
3.4.5 實戰演練 118
3.4.6 算法解析與拓展 120
3.5 效率至上—大整數乘法 124
3.5.1 問題分析 124
3.5.2 算法設計 125
3.5.3 圖解 126
3.5.4 偽代碼詳解 128
3.5.5 實戰演練 132
3.5.6 算法解析與拓展 135
3.6 分治算法復雜度求解秘籍 137
第4章 動態規劃 141
4.1 神奇的兔子序列 142
4.2 動態規劃基礎 143
4.2.1 算法思想 143
4.2.2 算法要素 143
4.2.3 解題秘籍 143
4.3 孩子有多像爸爸—最長的公共子序列 145
4.3.1 問題分析 145
4.3.2 算法設計 147
4.3.3 圖解 148
4.3.4 偽代碼詳解 152
4.3.5 實戰演練 153
4.3.6 算法解析及優化拓展 155
4.4 DNA基因鑒定—編輯距離 156
4.4.1 問題分析 156
4.4.2 算法設計 158
4.4.3 圖解 159
4.4.4 偽代碼詳解 161
4.4.5 實戰演練 162
4.4.6 算法解析及優化拓展 163
4.5 長江一日游—游艇租賃 164
4.5.1 問題分析 164
4.5.2 算法設計 166
4.5.3 圖解 166
4.5.4 偽代碼詳解 170
4.5.5 實戰演練 171
4.5.6 算法解析及優化拓展 172
4.6 快速計算—矩陣連乘 172
4.6.1 問題分析 173
4.6.2 算法設計 176
4.6.3 圖解 176
4.6.4 偽代碼詳解 180
4.6.5 實戰演練 181
4.6.6 算法解析及優化拓展 182
4.7 切呀切披薩—三角剖分 183
4.7.1 問題分析 183
4.7.2 算法設計 186
4.7.3 圖解 187
4.7.4 偽代碼詳解 191
4.7.5 實戰演練 192
4.7.6 算法解析及優化拓展 194
4.8 小石子游戲—石子合并 194
4.8.1 問題分析 195
4.8.2 算法設計 197
4.8.3 圖解 198
4.8.4 偽代碼詳解 203
4.8.5 實戰演練 205
4.8.6 算法解析及優化拓展 206
4.9 大賣場購物車1—0-1背包問題 209
4.9.1 問題分析 210
4.9.2 算法設計 211
4.9.3 圖解 212
4.9.4 偽代碼詳解 216
4.9.5 實戰演練 217
4.9.6 算法解析及優化拓展 218
4.10 快速定位—二叉搜索樹 220
4.10.1 問題分析 221
4.10.2 算法設計 225
4.10.3 圖解 226
4.10.4 偽代碼詳解 239
4.10.5 實戰演練 241
4.10.6 算法解析及優化拓展 243
4.11 動態規劃算法秘籍 246
第5章 回溯法 248
5.1 回溯法基礎 249
5.1.1 算法思想 249
5.1.2 算法要素 249
5.1.3 解題秘籍 251
5.2 大賣場購物車2—0-1背包問題 252
5.2.1 問題分析 252
5.2.2 算法設計 253
5.2.3 圖解 255
5.2.4 偽代碼詳解 258
5.2.5 實戰演練 259
5.2.6 算法解析 262
5.2.7 算法優化拓展 262
5.3 部落護衛隊—較大團 265
5.3.1 問題分析 266
5.3.2 算法設計 267
5.3.3 圖解 269
5.3.4 偽代碼詳解 274
5.3.5 實戰演練 275
5.3.6 算法解析及優化拓展 277
5.4 地圖調色板—地圖著色 278
5.4.1 問題分析 278
5.4.2 算法設計 279
5.4.3 圖解 280
5.4.4 偽代碼詳解 285
5.4.5 實戰演練 286
5.4.6 算法解析及優化拓展 288
5.5 一山不容二虎—n皇后問題 289
5.5.1 問題分析 290
5.5.2 算法設計 291
5.5.3 圖解 292
5.5.4 偽代碼詳解 300
5.5.5 實戰演練 301
5.5.6 算法解析及優化拓展 303
5.6 機器零件加工—加工順序 305
5.6.1 問題分析 305
5.6.2 算法設計 308
5.6.3 圖解 308
5.6.4 偽代碼詳解 313
5.6.5 實戰演練 314
5.6.6 算法解析 316
5.6.7 算法優化拓展 316
5.7 奇妙之旅1—旅行商問題 319
5.7.1 問題分析 319
5.7.2 算法設計 320
5.7.3 圖解 321
5.7.4 偽代碼詳解 330
5.7.5 實戰演練 331
5.7.6 算法解析及優化拓展 333
5.8 回溯法算法秘籍 336
第6章 分支限界法 338
6.1 橫行天下—廣度優先 339
6.1.1 算法思想 340
6.1.2 算法步驟 340
6.1.3 解題秘籍 341
6.2 大賣場購物車3—0-1背包問題 341
6.2.1 問題分析 342
6.2.2 算法設計 343
6.2.3 圖解 345
6.2.4 偽代碼詳解 350
6.2.5 實戰演練 352
6.2.6 算法解析 355
6.2.7 算法優化拓展—優先隊列式分支限界法 356
6.3 奇妙之旅2—旅行商問題 366
6.3.1 問題分析 366
6.3.2 算法設計 367
6.3.3 圖解 368
6.3.4 偽代碼詳解 371
6.3.5 實戰演練 373
6.3.6 算法解析 376
6.3.7 算法優化拓展 377
6.4 鋪設電纜—工程布線 385
6.4.1 問題分析 386
6.4.2 算法設計 386
6.4.3 圖解 387
6.4.4 偽代碼詳解 399
6.4.5 實戰演練 400
6.4.6 算法解析及優化拓展 403
6.5 回溯法與分支限界法的異同 404
第7章 線性規劃網絡流 405
7.1 線性規劃問題 406
7.1.1 線性規劃標準型 408
7.1.2 單純形算法圖解 409
7.1.3 解題秘籍 413
7.1.4 練習 413
7.2 工廠較大效益—單純形算法 414
7.2.1 問題分析 414
7.2.2 圖解 415
7.2.3 偽代碼詳解 418
7.2.4 實戰演練 420
7.2.5 算法解析及優化拓展 423
7.3 較大網絡流—最短增廣路算法 424
7.3.1 問題分析 424
7.3.2 增廣路算法 427
7.3.3 圖解 431
7.3.4 偽代碼詳解 437
7.3.5 實戰演練 439
7.3.6 算法解析 441
7.3.7 算法優化拓展—重貼標簽算法ISAP 442
7.4 最小費用較大流—最小費用路算法 455
7.4.1 問題分析 456
7.4.2 算法設計 456
7.4.3 圖解 457
7.4.4 偽代碼詳解 459
7.4.5 實戰演練 461
7.4.6 算法解析 465
7.4.7 算法優化拓展—消圈算法 466
7.5 精明的老板—配對方案問題 468
7.5.1 問題分析 468
7.5.2 算法設計 469
7.5.3 圖解 469
7.5.4 偽代碼詳解 470
7.5.5 實戰演練 471
7.5.6 算法解析 475
7.5.7 算法優化拓展—匈牙利算法 475
7.6 國際會議交流—圓桌問題 480
7.6.1 問題分析 481
7.6.2 算法設計 482
7.6.3 圖解 482
7.6.4 偽代碼詳解 484
7.6.5 實戰演練 485
7.6.6 算法解析及優化拓展 489
7.7 要考試啦—試題庫問題 489
7.7.1 問題分析 490
7.7.2 算法設計 490
7.7.3 圖解 491
7.7.4 偽代碼詳解 493
7.7.5 實戰演練 494
7.7.6 算法解析及優化拓展 498
7.8 太空實驗計劃—較大收益問題 499
7.8.1 問題分析 499
7.8.2 算法設計 500
7.8.3 圖解 502
7.8.4 偽代碼詳解 505
7.8.5 實戰演練 506
7.8.6 算法解析及優化拓展 510
7.9 央視娛樂節目購物街—方格取數問題 511
7.9.1 問題分析 511
7.9.2 算法設計 512
7.9.3 圖解 513
7.9.4 偽代碼詳解 514
7.9.5 實戰演練 516
7.9.6 算法解析及優化拓展 520
7.10 走著走著,就走到了西藏—旅游路線問題 521
7.10.1 問題分析 521
7.10.2 算法設計 523
7.10.3 圖解 523
7.10.4 偽代碼詳解 525
7.10.5 實戰演練 528
7.10.6 算法解析及優化拓展 532
7.11 網絡流問題解題秘籍 533
附錄A 特征方程和通項公式 534
附錄B sort函數 537
附錄C 優先隊列 541
附錄D 鄰接表 549
附錄E 并查集 555
附錄F 四邊不等式 561
附錄G 排列樹 565
附錄H 貝爾曼規則 579
附錄I 增廣路中稱為關鍵邊的次數 582
附錄J 較大流最小割定理 585
講的很詳細,通俗易懂
好吧,只因為我搶到券了,都要湊單,幫人買了三本,這本書很不錯,物超所值,適合初學者,簡單易懂,圖示清楚。正版。
從09年開始用當當,這次徹底死心了。當初的包裹只是一個塑料袋,但書到手時還是好的。現在的包裝變成了紙箱,到手就爛了。里邊沒有填充物,書在里邊都晃爛了,一連三次。前兩次嫌麻煩沒找客服,這次實在太過分了。箱子爛了,看這痕跡不只是運輸造成的,明顯是有人撕開了,估計要是值錢的東西就到不了我手上了。快遞員說如果拒收,重新發貨要7、8天,我看了一下,先收了,把里邊爛得最厲害得兩本辦理換貨了。結果快遞到北京之后一直沒聯系我,直到半夜快12點了,推送一條消息說聯系不上,第二天也不送了。聯系當當客服一天了,一直沒解決。快遞和當當都是,服務一直沒長進,甩鍋推責的本事倒是一直在上升。不想說太多了,看圖吧,相信每個愛書的人都忍不了。
書里面講的非常有趣,而且大量圖解,看算法導論很多不懂的問題,看了這個書就很清楚了,講的非常詳細,每個問題都講了為什么這樣做,還能怎樣改進優化,每種算法都有求解秘籍,用到難一點的知識在附錄中講了,難得這么用心的一本好書,特別適合初學者,值得學習。