第一章 绪言 1
第二章 算法设计的步骤及算法分析的基本概念 5
2-1 算法的定义 5
2-2 算法设计的步骤 5
2-3 算法的复杂性 11
2-4 最佳算法 17
2-5 拟ALGOL高级语言 20
习题 22
第三章 基础数学 23
3-1 数学归纳法——算法正确性证明 23
3-2 良序原则——算法终止性证明 25
3-3 整数函数 27
3-4 递归方程及其求解 28
3-5 算法分析示例 36
习题 39
第四章 算法设计的基本方法 41
4-1 穷举法 41
4-2 登山法(贪心法) 41
4-3 分枝与限界 46
4-4 分治法 55
4-5 动态规划 68
4-6 递归 80
4-7 探索法 83
4-8 倒推法 87
4-9 回溯法 91
4-10 模拟 95
习题 103
第五章 分类 106
5-1 气泡分类法 106
5-2 快速分类法 109
5-3 归并分类法 113
5-4 线性选择分类法 117
5-5 堆分类法 119
5-6 二叉合并分类法 122
5-7 顺序统计 126
5-8 优先队列 128
习题 129
第六章 集合上的基本操作及其适应的数据结构 131
6-1 集合上的基本操作 131
6-2 二叉检索 133
6-3 最优二叉检索树 135
习题 139
7-1 基本概念 140
第七章 图和网络的算法 140
7-2 树的算法 142
7-3 路的算法 147
7-4 流的算法 161
7-5 有向图的先深搜索与强连通性 172
习题 176
第八章 几何问题与代数问题的算法 179
8-1 几何问题的算法 179
8-2 代数问题的算法 202
习题 233
9-1 简单算法 236
第九章 串匹配算法 236
9-2 KMP算法 238
9-3 BM算法 241
9-4 RK算法 243
9-5 Z算法 245
习题 246
第十章 NP完全性理论及近似算法 247
10-1 问题、算法、复杂性和难解性 247
10-2 关于NP完全性理论的基本概念 249
10-3 若干NP完全问题及其证明和分析方法 259
10-4 NP难度 268
10-5 近似算法 270
10-6 复杂性谱系 278
习题 280
第十一章 下界理论 282
11-1 关于分类和搜索的比较树 282
11-2 猜测和选手对抗赛(争论)方法 287
11-3 关于代数问题下界的技术 293
习题 299
12-1 概率算法 300
第十二章 概率算法和算法的概率分析简介 300
12-2 算法的概率分析 305
习题 307
第十三章 并行算法 308
13-1 并行性PRAM及其它模型 308
13-2 某些PRAM算法和写冲突的处理 311
13-3 合并与分类 315
13-4 一个并行连通成分算法 317
13-5 下界 325
习题 329
参考文献 329