算法新解
劉新宇
- 出版商: 人民郵電
- 出版日期: 2016-12-01
- 定價: $594
- 售價: 8.5 折 $505
- 語言: 簡體中文
- 頁數: 566
- 裝訂: 平裝
- ISBN: 7115440352
- ISBN-13: 9787115440358
-
相關翻譯:
AI 及機器學習的經脈:演算法新解 (繁中版)
已絕版
買這商品的人也買了...
-
$480$379 -
$620$527 -
$690$538 -
$650$507 -
$680$537 -
$480$408 -
$414$393 -
$680$537 -
$650$507 -
$199編程珠璣, 2/e (修訂版) (Programming Pearls, 2/e)
-
$301Java 併發編程的藝術
-
$474$450 -
$179編程珠璣 : 續 (修訂版) (More Programming Pearls: Confessions of a Coder)
-
$250並行計算: 模型與算法
-
$474$450 -
$650$507 -
$450$356 -
$0邏輯與計算機設計基礎(原書第4版) Logic and Computer Design Fundamentals-4th Edition (Chinese Edition)
-
$581深度捲積網絡 : 原理與實踐
-
$420$332 -
$680$530 -
$801動手學深度學習 全彩精裝版
-
$393深度學習的數學
-
$474$450 -
$834$792
相關主題
商品描述
本書同時用函數式方法和傳統方法介紹了主要的基本算法和數據結構,數據結構部分包括二叉樹、紅黑樹、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