目 錄
譯者序
前言
第1章 什么是算法以及為什么應該關注算法 / 1
1.1 正確性 / 2
1.2 資源利用 / 4
1.3 針對非計算機專業(yè)人士的計算機算法 / 6
1.4 針對計算機專業(yè)人士的計算機算法 / 7
1.5 拓展閱讀 / 9
第2章 如何描述和評估計算機算法 / 11
2.1 如何描述計算機算法 / 11
2.2 如何描述運行時間 / 19
2.3 循環(huán)不變式 / 24
2.4 遞歸 / 26
2.5 拓展閱讀 / 28
第3章 排序算法和查找算法 / 29
3.1 二分查找 / 32
3.2 選擇排序 / 37
3.3 插入排序 / 41
3.4 歸并排序 / 46
3.5 快速排序 / 56
3.6 小結 / 65
3.7 拓展閱讀 / 68
第4章 排序算法的下界和如何超越下界 / 69
4.1 基于排序的規(guī)則 / 70
4.2 基于比較排序的下界 / 71
4.3 使用計數排序超越下界 / 72
4.4 基數排序 / 79
4.5 拓展閱讀 / 81
第5章 有向無環(huán)圖 / 82
5.1 有向無環(huán)圖 / 85
5.2 拓撲排序 / 86
5.3 如何表示有向圖 / 90
5.4 拓撲排序的運行時間 / 92
5.5 PERT圖表中的關鍵路徑 / 92
5.6 有向無環(huán)圖中的最短路徑 / 97
5.7 拓展閱讀 / 102
第6章 最短路徑 / 103
6.1 Dijkstra算法 / 105
6.2 BellmanFord算法 / 117
6.3 FloydWarshall算法 / 123
6.4 拓展閱讀 / 133
第7章 字符串算法 / 134
7.1 最長公共子序列 / 135
7.2 字符串轉換 / 141
7.3 字符串匹配 / 151
7.4 拓展閱讀 / 159
第8章 密碼學基礎 / 160
8.1 簡單替代密碼 / 161
8.2 對稱密鑰加密 / 163
8.3 公鑰加密 / 167
8.4 RSA加密系統(tǒng) / 170
8.5 混合加密系統(tǒng) / 180
8.6 計算隨機數 / 181
8.7 拓展閱讀 / 182
第9章 數據壓縮 / 183
9.1 赫夫曼編碼 / 185
9.2 傳真機 / 193
9.3 LZW壓縮 / 194
9.4 拓展閱讀 / 206
第10章 難?問題 / 207
10.1 棕卡車問題 / 207
10.2 P、NP和NP完全類 / 212
10.3 可判定問題和歸約 / 214
10.4 主問題 / 218
10.5 NP完全問題例析 / 220
10.6 總體策略 / 238
10.7 前景 / 241
10.8 不可判定問題 / 244
10.9 小結 / 246
10.10 拓展閱讀 / 247
參考文獻 / 248
索引 / 250