第1章 数学基础 1
1.1 排列和组合 1
1.2 多项式系数 10
1.3 生成函数 23
1.4 递归函数 32
1.5 Fibonacci数、Catalan数和Stirling数 41
1.6 容斥原理和反演公式 91
1.7 鸽巢原理和雷姆希Ramsey定理 103
1.8 本书所使用的数学记号 110
本章小结 119
习题 119
第2章 基本数据结构 132
2.1 关于数据结构的研究 133
2.2 数组、堆栈和队列 138
2.3 列表 168
2.4 树形 175
2.5 图 189
本章小结 195
习题 197
第3章 抽象数据类型 206
3.1 抽象数据类型的定义 207
3.2 抽象数据类型列表 209
3.3 先进先出队列 222
3.4 优先级队列 224
3.5 词典 227
3.6 抽象数据类型字符串 230
本章小结 233
习题 234
第4章 递归算法 237
4.1 递归定义和过程 237
4.2 快速傅里叶变换 243
本章小结 253
习题 253
第5章 复杂性分析 256
5.1 最坏和平均情况的分析:渐近分析 257
5.2 分摊复杂性 282
5.3 分析作为一个设计工具 306
本章小结 318
习题 319
第6章 复杂性类 324
6.1 问题和复杂性 324
6.2 非确定型计算和NP类 327
6.3 空间复杂性 356
本章小结 369
习题 370
第7章 排序与查找算法 374
7.1 内排序 375
7.2 内查找 402
7.3 外排序 419
7.4 外查找 453
本章小结 488
习题 489
第8章 几何与图算法 496
8.1 几何的表示与操作 497
8.2 一些几何算法 534
8.3 一些图算法 562
本章小结 621
习题 622
第9章 问题求解策略 629
9.1 迭代和递归 631
9.2 分而治之 657
9.3 动态规划 660
9.4 贪婪算法 684
本章小结 702
习题 704
第10章 并行算法和分布式算法 713
10.1 并行算法 714
10.2 布廉特(Brent)定理和功率 738
10.3 功能有效的并行前缀的计算 742
10.4 分布式算法 756
本章小结 808
习题 809
附录 本书所用数学记号 813
参考文献 816