發表於2024-11-22
本書同時用函數式方法和傳統方法介紹瞭主要的基本算法和數據結構,數據結構部分包括二叉樹、紅黑樹、AVL樹、Trie、Patricia、後綴樹、B樹、二叉堆、二項式堆、斐波那契堆、Pairing堆、隊列、序列等;基本算法部分包括各種排序算法、序列搜索算法,字符串匹配算法(KMP等),深度優先、廣度有限搜索算法、貪心算法以及動態規劃。
劉新宇,1999年和2001年分彆獲得清華大學自動化係學士和碩士學位,之後長期從事軟件研發工作。他關注基本算法和數據結構,尤其是函數式算法,目前就職於***中國倉儲和物流技術團隊。
序一 常成博士,4數網主編
序二 姚鼕,YY直播架構師
前言
第一部分 樹
第1章 二叉搜索樹:數據結構中的“hello world” 3
1.1 定義 3
1.2 數據組織 5
1.3 插入 6
1.4 遍曆 8
1.5 搜索 10
1.5.1 lookup 10
1.5.2 最小元素和最大元素 11
1.5.3 前驅和後繼 12
1.6 刪除 14
1.7 隨機構建二叉搜索樹 18
第2章 插入排序的進化 19
2.1 簡介 19
2.2 插入 20
2.3 改進一:二分查找 20
2.4 改進二:使用鏈錶 22
2.5 使用二叉搜索樹的最終改進 26
2.6 小結 27
第3章 並不復雜的紅黑樹 28
3.1 紅黑樹的定義 32
3.2 插入 33
3.3 刪除 36
3.4 命令式的紅黑樹算法 * 44
3.5 小結 47
第4章 AVL樹 48
4.1 AVL樹的定義 48
4.2 插入 51
4.2.1 平衡調整 53
4.2.2 模式匹配 57
4.3 刪除 59
4.4 AVL樹的命令式算法 * 59
4.5 小結 63
第5章 基數樹:Trie和Patricia 65
5.1 整數Trie 65
5.1.1 整數Trie的定義 67
5.1.2 插入 67
5.1.3 查找 69
5.2 整數Patricia 70
5.2.1 定義 71
5.2.2 插入 72
5.2.3 查找 78
5.3 字符Trie 80
5.3.1 定義 80
5.3.2 插入 81
5.3.3 查找 83
5.4 字符Patricia 84
5.4.1 定義 84
5.4.2 插入 85
5.4.3 查找 90
5.5 Trie和Patricia的應用 92
5.5.1 電子詞典和單詞自動補齊 92
5.5.2 T9輸入法 97
5.6 小結 102
第6章 後綴樹 103
6.1 後綴Trie 104
6.1.1 節點轉移和後綴鏈接 105
6.1.2 on-line構造 107
6.2 後綴樹 111
6.3 後綴樹的應用 121
6.3.1 字符串搜索和模式匹配 121
6.3.2 查找最長重復子串 123
6.3.3 查找最長公共子串 125
6.3.4 查找最長迴文 127
6.3.5 其他 128
6.4 小結 128
第7章 B樹 129
7.1 插入 131
7.2 刪除 139
7.2.1 刪除前預閤並 139
7.2.2 先刪除再修復 139
7.3 搜索 153
7.4 小結 155
第二部分 堆
第8章 二叉堆 159
8.1 用數組實現隱式二叉堆 159
8.1.1 定義 159
8.1.2 Heapify 160
8.1.3 構造堆 163
8.1.4 堆的基本操作 164
8.1.5 堆排序 168
8.2 左偏堆和skew堆:顯式的二叉堆 169
8.2.1 定義 170
8.2.2 閤並 172
8.2.3 基本堆操作 173
8.2.4 使用左偏堆實現堆排序 174
8.2.5 skew堆 174
8.3 伸展堆 177
8.3.1 定義 177
8.3.2 堆排序 183
8.4 小結 183
第9章 從吃葡萄到世界杯:選擇排序的進化 184
9.1 查找最小元素 186
9.1.1 標記 186
9.1.2 分組 188
9.1.3 選擇排序的性能 189
9.2 細微改進 190
9.2.1 比較方法參數化 190
9.2.2 細微調整 191
9.2.3 雞尾酒排序 192
9.3 本質改進 196
9.3.1 錦標賽淘汰法 196
9.3.2 使用堆排序進行最後的改進 204
9.4 小結 204
第10章 二項式堆、斐波那契堆和配對堆 205
10.1 二項式堆 205
10.1.1 定義 205
10.1.2 基本的堆操作 209
10.2 斐波那契堆 220
10.2.1 定義 220
10.2.2 基本堆操作 221
10.2.3 彈齣操作的性能分析 230
10.2.4 減小key 232
10.2.5 “斐波那契堆”名字的由來 234
10.3 配對堆 237
10.3.1 定義 237
10.3.2 基本堆操作 238
10.4 小結 244
第三部分 隊列和序列
第11章 並不簡單的隊列 247
11.1 單嚮鏈錶和循環緩衝區實現的隊列 247
11.1.1 單嚮鏈錶實現 247
11.1.2 循環緩衝區實現 251
11.2 純函數式實現 253
11.2.1 雙列錶隊列 254
11.2.2 雙數組隊列:一種對稱實現 255
11.3 小改進:平衡隊列 257
11.4 進一步改進:實時隊列 259
11.5 惰性實時隊列 266
11.6 小結 269
第12章 序列:最後一塊磚 271
12.1 二叉隨機訪問列錶 271
12.1.1 普通數組和列錶 271
12.1.2 使用森林錶示序列 272
12.1.3 在序列的頭部插入 273
12.2 二叉隨機訪問列錶的數值錶示 279
12.3 命令式雙數組列錶 285
12.3.1 定義 285
12.3.2 插入和添加 286
12.3.3 隨機訪問 286
12.3.4 刪除和平衡 287
12.4 可連接列錶 289
12.5 手指樹 293
12.5.1 定義 293
12.5.2 嚮序列的頭部插入元素 295
12.5.3 從頭部刪除元素 298
12.5.4 刪除時處理不規則的手指樹 300
12.5.5 在序列的尾部添加元素 304
12.5.6 從尾部刪除元素 306
12.5.7 連接 307
12.5.8 手指樹的隨機訪問 312
12.6 小結 325
第四部分 排序和搜索
第13章 分而治之:快速排序和歸並排序 329
13.1 快速排序 329
13.1.1 基本形式 330
13.1.2 嚴格弱序 331
13.1.3 劃分 331
13.1.4 函數式劃分算法的小改進 335
13.2 快速排序的性能分析 337
13.3 工程實踐中的改進 340
13.4 針對最差情況的工程實踐 348
13.5 其他工程實踐 351
13.6 其他 351
13.7 歸並排序 352
13.8 原地歸並排序 360
13.8.1 死闆原地歸並 360
13.8.2 原地工作區 362
13.8.3 原地歸並排序與鏈錶歸並排序 366
13.9 自然歸並排序 368
13.10 自底嚮上歸並排序 374
13.11 並行處理 377
13.12 小結 377
第14章 搜索 379
14.1 序列搜索 379
14.1.1 分而治之的搜索 379
14.1.2 信息復用 400
14.2 解的搜索 428
14.2.1 深度優先搜索和廣度優先搜索 428
14.2.2 搜索最優解 468
14.3 小結 498
附錄 列錶 500
列錶的定義 500
列錶的基本操作 502
變換 527
提取子列錶 536
fold 543
搜索和匹配 549
zip和unzip 555
小結 558
參考文獻 559
索引 563
算法新解 下載 mobi pdf epub txt 電子書 格式 2024
算法新解 下載 mobi epub pdf 電子書不錯不錯不錯不錯不錯不錯
評分先看的英文版,然後纔想買本中文版,作者很用心,不錯!!!!!
評分還可以
評分剛拿到書,滿心歡喜,期待接下來的閱讀
評分不負書名所述,看瞭兩篇兩章,算法與數據結構的重要性。還得多讀多試纔能理解到。
評分很 nice的書,值得學習
評分不錯,質量好
評分東西不錯!!!!!!!!!
評分沒看完,還不錯
算法新解 mobi epub pdf txt 電子書 格式下載 2024