第1章 绪论 1
1.1 算法的基本概念 1
1.2 算法分析 5
第2章 计算复杂性 13
2.1 计算模型 13
2.2 复杂性类型之间的关系 20
2.3 归约性关系 29
第3章 动态规划算法 33
3.1 动态规划原理 33
3.2 最长公共子序列问题 35
3.3 矩阵链乘法 37
3.4 0/1背包问题 41
3.5 最优二叉搜索树 44
3.6 RNA最大碱基对匹配问题 46
第4章 分治算法 53
4.1 概述 53
4.2 大整数乘法 56
4.3 Strassen矩形乘法 57
4.4 二分搜索 59
4.5 合并排序 60
4.6 最近点对问题 63
4.7 残缺棋盘问题 66
4.8 凸包问题 71
第5章 贪心算法 73
5.1 贪心法的基本原理 73
5.2 最短路径问题 75
5.3 最小生成树 80
5.4 霍夫曼(Huffman)编码问题 84
第6章 回溯法 90
6.1 概述 90
6.2 n后问题 96
6.3 装载问题 100
6.4 图的着色问题 102
6.5 回溯法的效率分析 106
6.6 一般回溯方法 109
第7章 分支与限界 111
7.1 分支限界法的基本思想 111
7.2 单源最短路径问题 113
7.3 布线问题 118
7.4 0/1背包问题 121
第8章 网络流问题 127
8.1 网络与流 127
8.2 Ford-Fulkerson算法 132
8.3 最大容量增值 134
8.4 最短路径增广 135
8.5 推送复标算法 140
8.6 复标前置算法 145
第9章 随机算法 152
9.1 随机算法概述 152
9.2 舍伍德算法 153
9.3 拉斯维加斯(Las Vegas)型概率算法 157
9.4 蒙特卡罗(Monte Carlo)算法 164
9.5 最小割随机算法 170
第10章 近似算法 173
10.1 近似算法的性能分析 173
10.2 顶点覆盖问题 174
10.3 平方根问题 177
10.4 多项式近似方案 179
10.5 不可近似性 182
参考文献 189