算法基础
出版信息
[美] 托马斯 H.科尔曼(Thomas H.Cormen) / 王宏志 / 机械工业出版社 / 2015-12 / 59.00
内容简介
本书介绍了什么是计算机算法,如何描述它们,以及如何来评估它们。这些计算机算法将提供:利用计算机搜索信息的简单方式;解决各种排序问题的方法;利用有向无环图和最短路径法来解决基本问题的方法(可用于建模公路网络,任务间的依赖及金融关系);解决字符串(例如DNA结构)问题的方法;密码学背后的基本原理;数据压缩的基础知识;以及甚至一些没有人能够理解如何在计算机上用相当长的时间来解决的问题。
本书适合作为计算机专业本科生“算法设计与分析”课程的教材,也适合相关专业人员阅读。
目录
出版者的话
译者序
前言
第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