1. 程式人生 > >演算法第四版-文字版-下載地址-Robert Sedgewick

演算法第四版-文字版-下載地址-Robert Sedgewick

下載地址:https://download.csdn.net/download/moshenglv/10777447

演算法第四版,文字版,可複製,方便copy程式碼

目錄:

第1章 基 礎 ....................... . ..........................1
1.1 基礎程式設計模型 ..................................... 4
1.1.1 Java程式的基本結構 ................. 4
1.1.2原始資料型別與表示式 ............. 6
1.1.3 語句.........................................8
1.1.4 簡便記法 ..................................9
L1.5 陣列.......................................10
1.1.6 靜態方法................................12
1.1.7 API.........................................16
1.1.8 字串....................................20
1.1.9 輸入輸出................................21
1.1.10 二分查詢 .............................. 28
1.1.11 展望 ..................................... 30
1.2 資料抽象...........................................38
1.2.1 使用抽象資料型別 .................. 38
1.2.2抽象資料型別舉例 .................. 45
1.2.3抽象資料型別的實現 ............... 52
1.2.4更多抽象資料型別的實現 ........ 55
1.2.5 資料型別的設計......................60
1 .3 揹包、佇列和棧 ................................ 74
1.3.1 API.........................................74
1.3.2 集合類資料型別的實現 ........... 81
1.3.3 連結串列 .......................................89
1.3.4 綜述.......................................98
1 .4 演算法分析.........................................108
1.4.1 科學方法 .............................. 108
1.4.2 觀察 ..................................... 108
1.4.3 數學模型 .............................. 112
1.4.4增長數量級的分類 ................ 117
1.4.5設計更快的演算法 .................... 118
1.4.6 倍率實驗 .............................. 121
1.4.7 注意事項 .............................. 123
1.4.8 處理對於輸入的依賴 ............. 124
1.4.9 記憶體 ..................................... 126
L4.10 展望....................................129
1 .5 案例研究:union-find演算法................136
1.5.1 動態連通性 ........................... 136
1.5.2 實現 ..................................... 140
1.5.3 展望 ..................................... 148
第2章 排 序 ...............................................152
2 .1 初級排序演算法 ..................................153
2.1.1 遊戲規則 .............................. 153
2.1.2 選擇排序 .............................. 155
2.1.3 插入排序 .............................. 157
2.1.4排序演算法的視覺化 ................ 159
2.1.5 比較兩種排序演算法 ................ 159
2.1.6 希爾排序 .............................. 162
2.2 歸併排序 .............................. .......... 170
2.2.1原地歸併的抽象方法 ............. 170
2 .2 .2 自頂向下的歸併排序 ............. 171
2 .2 .3 自底向上的歸併排序 ............. 175
2.2.4排序演算法的複雜度 ................ 177
2 .3 快速排序.........................................182
2.3.1 基本演算法 .............................. 182
2.3.2 效能特點 .............................. 185
2.3.3 演算法改進 .............................. 187
2.4 優先佇列.........................................195
2.4.1 API .......................................195
2.4.2 初級實現 .............................. 197
2.4.3 堆的定義 .............................. 198
2.4.4 堆的演算法 .............................. 199
2.4.5 堆排序 ..................................205
2.5 應用................................................214
2.5.1 將各種資料排序 .................... 214
2.5.2我應該使用哪種排序演算法 ...... 218
2.5.3 問題的歸約 ........... • ............... 219
2.5.4排序應用一覽 ....................... 221

第3章 查 找 ...............................................227
3.1 符號表 ............................................ 228
3.1.1 API .......................................228
3.1.2 有序符號表...........................230
3.1.3 用例舉例 .............................. 233
3.1.4 無序連結串列中的順序查詢 ......... 235
3.1.5 有序陣列中的二分查詢 ......... 238
3.1.6 對二分查詢的分析 ................ 242
3.1.7 預覽 ..................................... 244
3.2 二叉查詢樹 ..................................... 250
3.2.1 基本實現 .............................. 250
3.2.2 分析 ..................................... 255
3.2.3 有序性相關的方法與刪除
操作 ..................................... 257
3 .3 平衡查詢樹 ..................................... 269
3.3.1 2-3 查詢樹 ............................. 269
3.3.2 紅黑二叉查詢樹 .................... 275
3.3.3 實現 ..................................... 280
3.3.4 刪除操作 .............................. 282
3.3.5 紅黑樹的性質 ....................... 284
3.4 散列表 ............................................ 293
3.4.1 雜湊函式 ............ . ................. 293
3.4.2 基於拉鍊法的散列表 ............. 297
3.4.3 基於線性探測法的散列表 ...... 300
3.4.4 調整陣列大小 ....................... 304
3.4.5 記憶體使用 .............................. 306
3.5 應用................................................312
3.5.1 我應該使用符號表的哪種
實現 .. . ... ...............................312
3.5.2 集合的 API.............................313
3.5.3 字典類用例...........................315
3.5.4 索引類用例...........................318
3.5.5 稀疏向量 .............................. 322
第4章 圖 .................................................. 329
4.1 無向圖 ............................................ 331
4.1.1 術語表..................................331
4.1.2 表示無向圖的資料型別 ......... 333
4.1.3 深度優先搜尋 ....................... 338
4.1.4 尋找路徑 .............................. 342
4.1.5 廣度優先搜尋 ....................... 344
4.1.6 連通分量 .............................. 349
4.1.7 符號圖..................................352
4.1.8 總結 ..................................... 358
4.2 有向圖 ............................................ 364
4.2.1 術語 ..................................... 364
4.2.2有向圖的資料型別 ................ 365
4.2.3 有向圖中的可達性 ................ 367
4.2.4 環和有向無環圖 .................... 369
4.2.5 有向圖中的強連通性 ............. 378
4.2.6 總結 ..................................... 385
4.3 最小生成樹 ..................................... 390
4.3.1 原理 ..................................... 391
4.3.2 加權無向圖的資料型別 ......... 393
4.3.3 最小生成樹的API和測試
用例 ..................................... 396
4.3.4 Prim 演算法 .............................. 398
4.3.5 Prim演算法的即時實現 ............. 401
4.3.6 Kruskal 演算法 .......................... 404
4.3.7 展望 ..................................... 407
4.4 最短路徑.........................................412
4.4.1 最短路徑的性質 .................... 413
4.4.2 加權有向圖的資料結構 ......... 414
4.4.3 最短路徑演算法的理論基礎 ...... 420
4.4.4 Dijkstra 演算法 .......................... 421
4.4.5 無環加權有向圖中的最短
路徑演算法 .............................. 425
4.4.6 一般加權有向圖中的最短
路徑問題 .............................. 433
4.4.7 展望 ..................................... 445
第5章 字 符 串 ........................................... 451
5 .1 字串排序 ..................................... 455
5.1.1 鍵索引計數法 ....................... 455
5.1.2低位優先的字串排序 ......... 458
5.1.3 尚位優先的字串排序 ..........461
5.1.4三向字串快速排序 ............. 467
5.1.5字串排序演算法的選擇 ......... 470
5 .2 單詞查詢樹 ..................................... 474
5.2.1 單詞查詢樹 ...........................475
5.2.2單詞查詢樹的性質 ................ 483
5.2.3 三向單詞查詢樹 .................... 485
5.2.4三向單詞查詢樹的性質 ......... 487
5.2.5 應該使用字串符號表的
哪種實現 .............................. 489
5 .3 子字串查詢..................................493
5.3.1 歷史簡介 .............................. 493
5.3.2暴力子字串查詢演算法..........494

5.3.3 Knuth-Morris-Pratt子字串
查詢演算法 .............................. 496
5.3.4 Boyer-Moore字串查詢算
法 .........................................502
5.3.5 Rabin-Karp指紋字串金找
演算法 ..................................... 505
5.3.6 總結 ..................................... 509
5 .4 正則表示式 ..................................... 514
5.4.1 使用正則表示式描述模式 ...... 514
5.4.2 縮略寫法 .............................. 516
5.4.3 正則表示式的實際應用 ......... 517
5.4.4 非確定有限狀態自動機 ......... 518
5.4.5 模擬NFA的執行 .................... 520
5.4.6構造與正則表示式對應的
NFA ..................................... 522
5 .5 資料壓縮.........................................529
5.5.1 遊戲規則 .............................. 529
5.5.2 讀寫二進位制資料 .................... 530
5.5.3 侷限 ..................................... 533
5.5.4 熱身運動:基因組 ................ 534
5.5.5 遊程編碼 .............................. 537
5.5.6 霍夫曼壓縮 ...........................540
第6章 背 景 ...............................................558
胃弓I............................................................611