序言 1
第一章 基础知识 1
§1.1 引言 1
§1.2 算法分析 2
§1.3 常用记号 6
§1.4 递归 6
§1.5 图 8
§1.6 二元树 11
§1.7 二分树 13
§1.8 基本数据结构 14
习题一 17
第二章 优先策略 19
§2.1 最小树的库鲁斯卡尔(Kruskal)算法 19
§2.2 最短路的戴克斯特拉算法 20
§2.3 安排问题 22
§2.4 哈弗曼编码 25
习题二 28
第三章 分治策略 30
§3.1 引言 30
§3.2 斯特拉逊(Strassen)矩阵乘法 32
§3.3 快速富里叶变换(FFT) 36
§3.4 卷积 42
习题三 44
第四章 动态规划 45
§4.1 引言 45
§4.2 矩阵链乘 49
§4.3 最长公共子序列 50
§4.4 最优多边形三角剖分 51
§4.5 加工顺序问题 53
§4.6 流动推销员问题 55
习题四 57
第五章 搜索法 59
§5.1 深度优先搜索法 59
§5.2 图的遍历 60
§5.3 0-1规划的隐枚举法 63
§5.4 宽度优先搜索法 65
§5.5 分支定界法 67
§5.6 流动推销员问题分支定界解法 69
§5.7 α-β剪技术 74
习题五 74
§6.1 引言 76
第六章 内排序 76
§6.2 插入排序 77
§6.3 选择排序 78
§6.4 冒泡排序 78
§6.5 快速排序 80
§6.6 归并排序 82
§6.7 堆排序 85
§6.8 计数排序 89
§6.9 基数排序 90
§6.10 希尔(Shell)排序 92
§6.11 排序网络 94
§6.12 外存排序简介 99
§6.13 阶式归并法 102
习题六 103
第七章 查找及均衡树 105
§7.1 查找第k个元素 105
§7.2 最佳二分树 107
§7.3 均衡树 112
§7.4 哈尔(Hash)表 118
习题七 121
§8.1 引言 122
第八章 字符串匹配 122
§8.2 KMP(Knuth-Morris-Pratt)算法 123
§8.3 BM(Boyer-Moore)算法 126
§8.4 拉宾-卡普(Rabin-Karp)算法 127
习题八 128
第九章 概率算法中·数论算法·计算几何 129
§9.1 概率算法 129
§9.2 随机数与素数测试 131
§9.3 数论算法 132
§9.4 线段问题 135
§9.5 凸包 138
习题九 141
第十章 复杂性理论 142
§10.1 基本概念 142
§10.2 SAT问题与库克(Cook)定理 146
§10.3 一些NP完备问题 147
§10.4 近似算法 150
§10.5 密码学 154
习题十 158
参考书目 160