第一章 引论 1
第一节 引言 1
第二节 算法分析 1
第三节 例子 4
第四节 算法描述语言 5
第五节 设计与分析算法的基本工具 10
习题一 22
第二章 排序 24
第一节 引言 24
第二节 键比较排序 25
第三节 键比较排序问题的下界 34
第四节 归并排序 36
第五节 基数排序 40
第六节 映射排序 42
第七节 内部排序方法的比较总结 47
第八节 外部排序 48
习题二 56
第三章 查找 59
第一节 基本查找方法 59
第二节 分组查找方法 63
第三节 树结构的查找方法 65
第四节 散列查找方法 73
第五节 各种查找算法的比较 78
习题三 79
第四章 图算法 81
第一节 图的基本概念及图在计算机中的表示 81
第二节 图的遍历 85
第三节 求有向图的强连通分支 88
第四节 求带权图的最小生成树 92
第五节 最短路算法 102
第六节 图的传递闭包 108
习题四 109
第五章 背包问题 111
第一节 引言 111
第二节 贪心法 112
第三节 回溯法 114
第四节 分支-限界法 120
第五节 动态规划算法 130
习题五 136
第六章 串匹配 138
第一节 引言 138
第二节 串匹配的KMP算法 139
第三节 串匹配的BM算法 145
第四节 串匹配的RK算法 147
习题六 150
第七章 多项式和矩阵 152
第一节 多项式求值问题 152
第二节 向量和矩阵乘法 158
第三节 快速傅里叶变换(FFT)与向量卷积 172
习题七 184
第八章 NP完全问题 186
第一节 引言 186
第二节 确定的图灵机 187
第三节 不确定的图灵机 192
第四节 P与NP类 196
第五节 NP完全问题与Cook定理 203
习题八 209
第九章 概率算法、并行算法及符号算法简介 210
第一节 概率算法 210
第二节 并行算法 212
第三节 符号算法 223
习题九 235
附录 课程设计题目 237
参考文献 239