第1章 算法分析概述 1
1.1 为什么要对算法进行分析 1
1.2 计算复杂性 2
1.3 算法分析的过程 6
1.4 平均情形分析 7
1.5 例:快速排序的分析 8
1.6 渐近逼近 13
1.7 分布 14
1.8 概率算法 16
参考文献 18
第2章 递归关系 21
2.1 基本性质 22
2.2 一阶递归 24
2.3 非线性一阶递归 26
2.4 高阶递归 28
2.5 求解递归的方法 32
2.6 二分分治递归和二进制数 37
2.7 一般的分治递归 43
参考文献 48
第3章 生成函数 51
3.1 常规生成函数 51
3.2 指数生成函数 55
3.3 利用生成函数求解递归 57
3.4 生成函数的展开 63
3.5 利用生成函数进行变换 65
3.6 关于生成函数的函数方程 67
3.7 利用OGF求解三数中值Quicksort递归 69
3.8 利用生成函数的计数 71
3.9 符号方法 74
3.10 拉格朗日反演 80
3.11 概率生成函数 82
3.12 二元生成函数 84
3.13 特殊函数 91
参考文献 94
第4章 渐近逼近 97
4.1 有关渐近逼近的记号 98
4.2 渐近展开式 102
4.3 渐近展开式的操作 107
4.4 有限和的渐近逼近 112
4.5 欧拉-麦克劳林求和 114
4.6 二元渐近性 119
4.7 拉普拉斯方法 128
4.8 算法分析中的“正态”例 131
4.9 算法分析中的“泊松”例 135
4.10 生成函数的渐近性 136
参考文献 140
5.1 二叉树 141
第5章 树 141
5.2 树和森林 143
5.3 树的性质 145
5.4 树的算法 147
5.5 二叉查找树 150
5.6 Catalan树中的平均路径长 153
5.7 二叉查找树中的路径长 156
5.8 随机树的可加参数 159
5.9 高 162
5.10 树性质平均情形结果的小结 167
5.11 树和二叉树的表示 168
5.12 无序树 172
5.13 标号树 178
5.14 其他类型的树 180
参考文献 186
第6章 排列 189
6.1 排列的基本性质 190
6.2 排列的算法 194
6.3 排列的表示法 196
6.4 计数问题 200
6.5 利用CGF分析排列的性质 204
6.6 逆序与插入排序 211
6.7 左向右最小值与选择排序 216
6.8 圈与原位排列 220
6.9 极值参数 223
参考文献 226
第7章 串与trie树 229
7.1 串查找 230
7.2 位串的组合性质 232
7.3 规则表达式 239
7.4 有限状态自动机与Knuth-Morris-Pratt算法 242
7.5 上下文无关语法 244
7.6 trie树 248
7.7 trie算法 251
7.8 trie树的组合性质 254
7.9 更大的字母表 258
参考文献 259
第8章 字与映射 263
8.1 使用分离链接的散列 263
8.2 字的基本性质 265
8.3 生日悖论与赠券收藏家问题 269
8.4 占有约束与极值参数 274
8.5 占有分布 278
8.6 开放定址散列法 284
8.7 映射 289
8.8 整数因子分解与映射 297
参考文献 301
索引 303