本書是“十二五”普通高等教育本科國家級規(guī)劃教材和國家精品課程教材。全書以算法設計策略為知識單元,系統(tǒng)介紹計算機算法的設計方法與分析技巧,主要內(nèi)容包括:算法概述、遞歸與分治策略、動態(tài)規(guī)劃、貪心算法、回溯法、分支限界法、隨機化算法、線性規(guī)劃與網(wǎng)絡流、串與序列的算法和數(shù)論算法等。書中既涉及經(jīng)典與實用算法及實例分析,又包括算法熱點領域追蹤。為突出教材的可讀性和可用性,章首增加了學習要點提示;章末配有難易適度的算法分析題和算法實現(xiàn)題;配套出版了《計算機算法設計與分析習題解答(第6版)》;并免費提供電子課件和教學網(wǎng)站服務。本書適合作為大學計算機科學與技術、軟件工程、信息安全、信息與計算科學等專業(yè)本科生和研究生教材,可作為ACM程序設計大賽培訓教材,也適合廣大工程技術人員學習參考。
王曉東,福建省教學名師。獲得國家科技進步2等獎1項,省科技進步2等獎3項。主持國家精品課程算法與數(shù)據(jù)結(jié)構和算法設計與分析的課程建設。獲福建省教學成果一等獎。在國內(nèi)外重要學術刊物上發(fā)表有創(chuàng)見性學術論文50余篇。
目 錄
第1章 算法概述 001
1.1 算法與程序 001
1.2 算法復雜性分析 001
1.3 NP完全性理論 004
算法分析題1 006
算法實現(xiàn)題1 007
第2章 遞歸與分治策略 010
2.1 遞歸的概念 010
2.2 分治法的基本思想 014
2.3 二分搜索技術 015
2.4 大整數(shù)的乘法 016
2.5 斯特拉森矩陣乘法 017
2.6 棋盤覆蓋 018
2.7 合并排序 020
2.8 快速排序 022
2.9 線性時間選擇 024
2.10 最接近點對問題 026
2.11 循環(huán)賽日程表 032
算法分析題2 033
算法實現(xiàn)題2 037
第3章 動態(tài)規(guī)劃 042
3.1 矩陣連乘問題 042
3.2 動態(tài)規(guī)劃算法的基本要素 046
3.3 最長公共子序列 049
3.4 最大子段和 052
3.5 凸多邊形最優(yōu)三角剖分 057
3.6 多邊形游戲 059
3.7 圖像壓縮 062
3.8 電路布線 064
3.9 流水作業(yè)調(diào)度 065
3.10 0-1背包問題 068
3.11 最優(yōu)二叉搜索樹 072
算法分析題3 074
算法實現(xiàn)題3 074
第4章 貪心算法 086
4.1 活動安排問題 086
4.2 貪心算法的基本要素 088
4.3 最優(yōu)裝載 091
4.4 哈夫曼編碼 092
4.5 單源最短路徑 095
4.6 最小生成樹 097
4.7 多機調(diào)度問題 100
算法分析題4 102
算法實現(xiàn)題4 102
第5章 回溯法 108
5.1 回溯法的算法框架 108
5.2 裝載問題 112
5.3 批處理作業(yè)調(diào)度 118
5.4 符號三角形問題 120
5.5 n后問題 122
5.6 0-1背包問題 124
5.7 最大團問題 127
5.8 圖的m著色問題 128
5.9 旅行售貨員問題 131
5.10 圓排列問題 132
5.11 電路板排列問題 134
5.12 連續(xù)郵資問題 137
5.13 回溯法的效率分析 139
算法分析題5 141
算法實現(xiàn)題5 141
第6章 分支限界法 151
6.1 分支限界法的基本思想 151
6.2 單源最短路徑問題 153
6.3 裝載問題 155
6.4 布線問題 161
6.5 0-1背包問題 163
6.6 最大團問題 167
6.7 旅行售貨員問題 169
6.8 電路板排列問題 171
6.9 批處理作業(yè)調(diào)度 174
算法分析題6 177
算法實現(xiàn)題6 178
第7章 隨機化算法 187
7.1 隨機數(shù) 187
7.2 數(shù)值隨機化算法 189
7.3 舍伍德算法 191
7.4 拉斯維加斯算法 196
7.5 蒙特卡羅算法 202
算法分析題7 204
算法實現(xiàn)題7 207
第8章 線性規(guī)劃與網(wǎng)絡流 210
8.1 線性規(guī)劃問題和單純形算法 210
8.2 最大網(wǎng)絡流問題 222
8.3 最小費用流問題 239
算法分析題8 256
算法實現(xiàn)題8 257
第9章 串與序列的算法 268
9.1 子串搜索算法 268
9.2 后綴數(shù)組與最長公共字串 279
9.3 序列比較算法 288
算法分析題9 294
算法實現(xiàn)題9 296
第10章 數(shù)論算法 300
10.1 數(shù)論基本概念 300
10.2 最大公約數(shù)算法 303
10.3 不定方程算法 312
10.4 同余與模運算 316
10.5 模線性方程 319
10.6 素數(shù)算法 325
10.7 原根與離散對數(shù) 337
算法分析題10 344
算法實現(xiàn)題10 345
參考文獻 350