目录
Algorithms Unlocked
出版者的话
译者序
前言
第1章什么是算法以及为什么应该关注算法1
1.1正确性2
1.2资源利用3
1.3针对非计算机专业人士的计算机算法5
1.4针对计算机专业人士的计算机算法6
1.5拓展阅读7
第2章如何描述和评估计算机算法9
2.1如何描述计算机算法9
2.2如何描述运行时间16
2.3循环不变式19
2.4递归21
2.5拓展阅读23
第3章排序算法和查找算法24
3.1二分查找26
3.2选择排序31
3.3插入排序34
3.4归并排序38
3.5快速排序47
3.6小结55
3.7拓展阅读57
第4章排序算法的下界和如何超越下界58
4.1基于排序的规则58
4.2基于比较排序的下界59
4.3使用计数排序超越下界60
4.4基数排序66
4.5拓展阅读68
第5章有向无环图69
5.1有向无环图72
5.2拓扑排序72
5.3如何表示有向图76
5.4拓扑排序的运行时间77
5.5PERT图表中的关键路径78
5.6有向无环图中的最短路径82
5.7拓展阅读86
第6章最短路径87
6.1Dijkstra算法89
6.2BellmanFord算法98
6.3FloydWarshall算法103
6.4拓展阅读112
第7章字符串算法114
7.1最长公共子序列114
7.2字符串转换120
7.3字符串匹配128
7.4拓展阅读135
第8章密码学基础136
8.1简单替代密码137
8.2对称密钥加密138
8.3公钥加密142
8.4RSA加密系统144
8.5混合加密系统153
8.6计算随机数153
8.7拓展阅读154
第9章数据压缩156
9.1哈夫曼编码158
9.2传真机165
9.3LZW压缩166
9.4拓展阅读176
第10章难?问题177
10.1棕卡车问题177
10.2P、NP和NP完全类181
10.3可判定问题和归约183
10.4主问题186
10.5NP完全问题例析188
10.6总体策略203
10.7前景206
10.8不可判定问题208
10.9小结210
10.10拓展阅读211
参考文献212
索引214