算法設計與分析(第3版)
屈婉玲、劉田、張立昂、王捍貧
相關主題
商品描述
目錄大綱
目錄CONTENTS
第1章基礎知識1
1.1有關算法的基本概念1
1.2算法的偽碼描述5
1.3算法的數學基礎6
1.3.1函數的漸近的界6
1.3.2求和的方法10
1.3.3遞推方程求解方法12
習題121
第2章分治策略26
2.1分治策略的基本思想26
2.1.1兩個熟悉的例子26
2.1.2分治算法的一般性描述27
2.2分治算法的分析技術27
2.3改進分治算法的途徑31
2.3.1通過代數變換減少子問題個數31
2.3.2利用預處理減少遞歸內部的計算量34
2.4典型實例37
2.4.1快速排序算法37
2.4.2選擇問題40
2.4.3n-1次多項式在全體2n次方根上的求值44
習題247
第3章動態規劃52
3.1動態規劃的設計思想52
3.1.1多起點、多終點的最短路徑問題53
3.1.2使用動態規劃技術的必要條件54
3.2動態規劃算法的設計要素55目錄算法設計與分析(第3版)3.2.1子問題的劃分和遞推方程56
3.2.2動態規劃算法的遞歸實現57
3.2.3動態規劃算法的迭代實現58
3.2.4一個簡單實例的計算過程59
3.3動態規劃算法的典型應用60
3.3.1投資問題60
3.3.2背包問題63
3.3.3最長公共子序列LCS65
3.3.4圖像壓縮68
3.3.5最大子段和72
3.3.6最優二分檢索樹76
3.3.7生物信息學中的動態規劃算法80
習題383
第4章貪心法87
4.1貪心法的設計思想87
4.2關於貪心法的正確性證明90
4.3對貪心法得不到最優解情況的處理94
4.4貪心法的典型應用98
4.4.1最優前綴碼98
4.4.2最小生成樹103
4.4.3單源最短路徑108
習題4110
第5章回溯與分支限界114
5.1回溯算法的基本思想和適用條件114
5.1.1幾個典型的例子114
5.1.2回溯算法的適用條件118
5.2回溯算法的設計步驟119
5.2.1回溯算法的遞歸實現和迭代實現119
5.2.2幾個典型的例子120
5.3回溯算法的效率估計和改進途徑122
5.4分支限界124
5.4.1背包問題125
5.4.2最大團問題127
5.4.3貨郎問題128
5.4.4圓排列問題129
5.4.5連續郵資問題131
習題5132
第6章線性規劃134
6.1線性規劃模型134
6.1.1模型134
6.1.2二維線性規劃的圖解法137
6.2標準形139
6.2.1標準形的基本概念139
6.2.2標準形的可行解的性質140
6.3單純形法143
6.3.1確定初始基本可行解143
6.3.2最優性檢驗143
6.3.3基變換144
6.3.4單純形表146
6.3.5人工變量和兩階段法148
6.3.6單純形法的有限終止154
6.4對偶性155
6.4.1對偶線性規劃155
6.4.2對偶單純形法159
6.5整數線性規劃的分支限界算法160
習題6165
第7章網絡流算法171
7.1最大流問題171
7.1.1網絡流及其性質171
7.1.2FordFulkerson算法173
7.1.3Dinic有效算法176
7.2最小費用流184
7.2.1Floyd算法184
7.2.2最小費用流的負迴路算法186
7.2.3最小費用流的最短路徑算法188
7.3運輸問題189
7.3.1確定初始調運方案191
7.3.2改進調運方案191
7.3.3表上作業法193
7.4二部圖匹配194
7.4.1二部圖的最大匹配194
7.4.2賦權二部圖的匹配197
習題7203
第8章算法分析與問題的計算復雜度208
8.1平凡下界209
8.2直接計數求解該問題所需要的最少運算210
8.3決策樹211
8.4檢索算法的時間復雜度分析212
8.5排序算法的時間復雜度分析214
8.5.1冒泡排序算法214
8.5.2堆排序算法215
8.5.3排序算法的決策樹與算法類時間復雜度的下界220
8.6選擇算法的時間復雜度分析222
8.6.1找最大和最小問題223
8.6.2找第二大問題224
8.6.3找中位數的問題226
8.7通過歸約確認問題計算復雜度的下界228
習題8229
第9章NP完全性231
9.1P類與NP類231
9.1.1易解的問題與難解的問題231
9.1.2判定問題233
9.1.3NP類235
9.2多項式時間變換與NP完全性236
9.2.1多項式時間變換236
9.2.2NP完全性及其性質238
9.2.3CookLevin定理——第一個NP完全問題239
9.3幾個NP完全問題239
9.3.1最大可滿足性與三元可滿足性239
9.3.2頂點覆蓋、團與獨立集241
9.3.3哈密頓迴路與貨郎問題243
9.3.4恰好覆蓋245
9.3.5子集和、背包、裝箱與雙機調度247
9.3.6整數線性規劃249
習題9252
第10章近似算法255
10.1近似算法及其近似比255
10.2多機調度問題256
10.2.1貪心的近似算法256
10.2.2改進的貪心近似算法257
10.3貨郎問題258
10.3.1最鄰近法258
10.3.2最小生成樹法259
10.3.3最小權匹配法259
10.4背包問題261
10.4.1一個簡單的貪心算法261
10.4.2多項式時間近似方案261
10.4.3偽多項式時間算法與完全多項式時間近似方案262
習題10264
第11章隨機算法266
11.1概率論預備知識266
11.2對隨機快速排序算法的分析268
11.3隨機算法的分類及其局限性270
11.3.1拉斯維加斯型隨機算法270
11.3.2蒙特卡洛型隨機算法270
11.3.3隨機算法的局限性271
11.4素數檢驗和多項式恆等檢驗271
11.4.1素數檢驗272
11.4.2多項式恆等檢驗273
11.5隨機游動算法274
11.5.1有限馬爾可夫鏈及其表示274
11.5.2求解二元布爾可滿足性問題的隨機游動算法275
11.6姚的極小極大原理276
習題11278
第12章處理難解問題的策略279
12.1對問題施加限制279
12.1.1二元可滿足性問題280
12.1.2霍恩公式可滿足性問題280
12.2固定參數算法282
12.3改進指數時間算法284
12.4啟發式方法286
12.5平均情形的復雜性287
12.6難解算例生成289
12.6.1相變現象與難解性289
12.6.2隱藏解的難解算例291
12.7基於統計物理的消息傳遞算法292
12.7.1消息傳遞算法與回溯法、局部搜索算法的比較292
12.7.2用消息傳遞算法求解3SAT問題293
12.8量子算法簡介294
12.8.1量子比特294
12.8.2正交測量295
12.8.3量子門296
12.8.4一個量子算法297
習題12299
參考文獻300