第一部分 基本原理 3
第一章 简介 3
1.1 算法 3
1.2 示例:连通问题 5
1.3 合并-查找算法 8
1.4 前景展望 16
1.5 总结 17
第二章 算法分析原理 19
2.1 实现和经验分析 20
2.2 算法分析 22
2.3 函数的增长 24
2.4 大O符号 30
2.5 递归基础知识 33
2.6 算法分析举例 36
2.7 保证、预测和限制 40
第一部分参考资料 44
第三章 基本数据结构 47
第二部分 数据结构 47
3.1 构建组件 48
3.2 数组 56
3.3 链表 62
3.4 基本的链表处理 68
3.5 链表的内存分配 75
3.6 字符串 78
3.7 复合数据结构 82
第四章 抽象数据类型 91
4.1 抽象对象和对象集合 98
4.2 下推栈ADT 100
4.3 栈ADT客户示例 103
4.4 栈ADT的实现 108
4.5 创建一个新ADT 112
4.6 FIFO队列和广义队列 117
4.7 复制和索引项 124
4.8 一级ADT 128
4.9 基于应用的ADT范例 137
4.10 前景展望 142
第五章 递归与树 144
5.1 递归算法 145
5.2 分治法 150
5.3 动态编程 161
5.4 树 168
5.5 二叉树的数学性质 174
5.6 树遍历 177
5.7 递归二叉树算法 181
5.8 图遍历 186
5.9 前景展望 191
第二部分参考资料 192
第三部分 排序算法 195
第六章 基本排序方法 195
6.1 游戏规则 196
6.2 选择排序 200
6.3 插入排序 201
6.4 冒泡排序 203
6.5 基本排序方法的执行特性 205
6.6 Shell排序法 209
6.7 对其他类型的文件进行排序 217
6.8 索引和指针排序 221
6.9 链表排序 227
6.10 关键字索引统计 230
第七章 快速排序 233
7.1 基本算法 234
7.2 快速排序算法的性能特性 237
7.3 栈大小 240
7.4 小的子文件 243
7.5 利用三个元素的中间元素来划分 245
7.6 重复值 249
7.7 字符串和向量 251
7.8 选择 253
第八章 归并及归并排序 256
8.1 二路归并 257
8.2 抽象的合适归并算法 258
8.3 自顶向下的归并排序 260
8.4 对基本排序方法进行改进 263
8.5 自底向上的归并排序 264
8.6 执行典型的归并排序算法 268
8.7 使用链表执行归并排序 270
8.8 再次讨论递归过程 272
第九章 优先队列与堆排序 274
9.1 基本的实现方法 276
9.2 堆的数据结构 279
9.3 基于堆的算法 281
9.4 堆排序 285
9.5 优先队列抽象数据类型 293
9.6 索引元素的优先队列 297
9.7 二项式队列 300
第十章 基数排序 309
10.1 比特、字节、字 310
10.2 二进制快速排序 313
10.3 MSD基数排序 316
10.4 三路基数快速排序 322
10.5 LSD基数排序 326
10.6 基数排序的特性 328
10.7 运行时间低于线性的排序 332
第十一章 特殊用途的排序方法 335
11.1 巴彻尔奇偶归并排序 336
11.2 排序网络 340
11.3 外部排序 347
11.4 “排序-归并”的实现 351
11.5 并行“排序-归并” 356
第三部分参考资料 360
第四部分 搜索算法 365
第十二章 符号表和二叉搜索树 365
12.1 符号表抽象数据类型(ADT) 366
12.2 关键字索引检索 372
12.3 顺序搜索 374
12.4 二叉搜索 380
12.5 二叉搜索树 384
12.6 BST的性能特性 390
12.7 符号表的索引实现 393
12.8 在BST的根进行的插入 397
12.9 其他ADT函数的BST实现 400
第十三章 平衡树 408
13.1 随机化BST 411
13.2 发散BST 416
13.3 自上而下2-3-4树 421
13.4 红黑树 426
13.5 跳跃表 434
13.6 性能特性 441
第十四章 散列 444
14.1 散列函数 445
14.2 链地址法 451
14.3 线性探测 455
14.4 双重散列 459
14.5 动态散列表 463
14.6 综述 466
第十五章 基数检索 470
15.1 数字搜索树 471
15.2 线索(trie) 473
15.3 帕氏线索 480
15.4 多叉线索和TST 487
15.5 文本字符索引算法 501
第十六章 外部排序 504
16.1 游戏规则 505
16.2 索引顺序存取 506
16.3 B树 508
16.4 可扩充散列 519
16.5 综述 528
第四部分参考资料 531