第一部分基本概念和算法導引
第1章算法分析基本概念
1.1引言
1.2歷史背景
1.3二分搜索
1.4合並兩個已排序的表
1.5選擇排序
1.6插入排序
1.7自底向上合並排序
1.8時間復雜性
1.9空間復雜性
1.10最優算法
1.11如何估計算法運行時間
1.12最壞情況和平均情況的分析
1.13平攤分析
1.14輸入大小和問題實例
1.15練習
1.16參考注釋
第2章數學預備知識
2.1集合、關系和函數
2.2證明方法
2.3對數
2.4底函數和頂函數
2.5階乘和二項式系數
2.6鴿巢原理
2.7和式
2.8遞推關系
2.9練習
第3章數據結構
3.1引言
3.2鏈表
3.3圖
3.4樹
3.5根樹
3.6二叉樹
3.7練習
3.8參考注釋
第4章堆和不相交集數據結構
4.1引言
4.2堆
4.3不相交集數據結構
4.4練習
4.5參考注釋
第二部分基於遞歸的技術
第5章歸納法
5.1引言
5.2兩個簡單的例子
5.3基數排序
5.4整數冪
5.5多項式求值(Horner規則)
5.6生成排列
5.7尋找多數元素
5.8練習
5.9參考注釋
第6章分治
6.1引言
6.2二分搜索
6.3合並排序
6.4分治范式
6.5尋找中項和第k小元素
6.6快速排序
6.7大整數乘法
6.8矩陣乘法
6.9最近點對問題
6.10練習
6.11參考注釋
第7章動態規划
7.1引言
7.2最長公共子序列問題
7.3矩陣鏈相乘
7.4動態規划范式
7.5所有點對的最短路徑問題
7.6背包問題
7.7練習
7.8參考注釋
第三部分最先割技術
第8章貪心算法
8.1引言
8.2最短路徑問題
8.3最小耗費生成樹(Kruskal算法)
8.4最小耗費生成樹(Prim算法)
8.5文件壓縮
8.6練習
8.7參考注釋
第9章圖的遍歷
9.1引言
9.2深度優先搜索
9.3深度優先搜索的應用
9.4廣度優先搜索
9.5廣度優先搜索的應用
9.6練習
9.7參考注釋第四部分問題的復雜性
第10章NP完全問題
10.1引言
10.2P類
10.3NP類
10.4NP完全問題
10.5co?NP類
10.6NPI類
10.7四種類之間的關系
10.8練習
10.9參考注釋
第11章計算復雜性引論
11.1引言
11.2計算模型:圖靈機
11.3k帶圖靈機和時間復雜性
11.4離線圖靈機和空間復雜性
11.5帶壓縮和線性增速
11.6復雜性類之間的關系
11.7歸約
11.8完全性
11.9多項式時間層次
11.10練習
11.11參考注釋
第12章下界
12.1引言
12.2平凡下界
12.3決策樹模型
12.4代數決策樹模型
12.5線性時間歸約
12.6練習
12.7參考注釋第五部分克服困難性
第13章回溯法
13.1引言
13.23着色問題
13.38皇后問題
13.4一般回溯方法
13.5分支限界法
13.6練習
13.7參考注釋
第14章隨機算法
14.1引言
14.2LasVegas和MonteCarlo算法
14.3隨機化快速排序
14.4隨機化的選擇算法
14.5測試串的相等性
14.6模式匹配
14.7隨機取樣
14.8素數性測試
14.9練習
14.10參考注釋
第15章近似算法
15.1引言
15.2基本定義
15.3差界
15.4相對性能界
15.5多項式近似方案
15.6完全多項式近似方案
15.7練習
15.8參考注釋第六部分域指定問題的迭代改進
第16章網絡流
16.1引言
16.2預備知識
16.3Ford?Fulkerson方法
16.4最大容量增值
16.5最短路徑增值
16.6Dinic算法
16.7MPM算法
16.8練習
16.9參考注釋
第17章匹配
17.1引言
17.2預備知識
17.3網絡流方法
17.4二分圖的匈牙利樹方法
17.5一般圖中的最大匹配
17.6二分圖的On2.5算法
17.7練習
17.8參考注釋第七部分計算幾何技術
第18章幾何掃描
18.1引言
18.2幾何預備知識
18.3計算線段的交點
18.4凸包問題
18.5計算點集的直徑
18.6練習
18.7參考注釋
第19章Voronoi圖解
19.1引言
19.2最近點Voronoi圖解
19.3Voronoi圖解的應用
19.4最遠點Voronoi圖解
19.5最遠點Voronoi圖解的應用
19.6練習
19.7參考注釋參考文獻