本書系統(tǒng)地介紹了算法設(shè)計(jì)與分析領(lǐng)域的經(jīng)典技術(shù),深入淺出地講述了算法基本理論和方法。內(nèi)容主要包括算法概述、遞歸與分治法、動態(tài)規(guī)劃法、貪心算法、回溯法、分支限界法等。全書設(shè)計(jì)了豐富的應(yīng)用實(shí)例,對每種算法,均結(jié)合實(shí)例,按照問題提出、算法設(shè)計(jì)、算法實(shí)現(xiàn)(Java語言)及算法復(fù)雜性分析的流程進(jìn)行了細(xì)致講解。為降低學(xué)習(xí)者理解的難度,對算法推理及演算均配置了圖解進(jìn)行輔助說明,以幫助讀者清晰地掌握算法的設(shè)計(jì)思路與技巧。所有算法均設(shè)置了實(shí)驗(yàn)項(xiàng)目,以幫助讀者進(jìn)行實(shí)踐訓(xùn)練。
郭藝輝,女,中山大學(xué)博士,廣東金融學(xué)院互聯(lián)網(wǎng)金融與信息工程學(xué)院講師,長期從事計(jì)算機(jī)課程的教學(xué)與研究工作。
目 錄
第1部分 算法基礎(chǔ)
第1章 算法概述 3
第2章 遞歸與分治法 9
2.1 基本思想 9
2.2 遞歸算法 10
2.3 二分搜索技術(shù) 12
2.4 合并排序 14
2.5 快速排序 19
2.6 線性時(shí)間選擇 22
第3章 動態(tài)規(guī)劃 28
3.1 基本思想 28
3.2 矩陣連乘 29
3.3 最長公共子序列 36
3.4 最優(yōu)二叉搜索樹 40
3.5 電路布線 49
3.6 0-1背包 54
第4章 貪心算法 61
4.1 基本思想 61
4.2 活動安排問題 61
4.3 背包問題 64
4.4 哈夫曼編碼 67
4.5 單源最短路徑 71
4.6 最小生成樹 75
第5章 回溯法 84
5.1 基本思想 84
5.2 裝載問題 84
5.2 批處理作業(yè)調(diào)度 93
5.3 n皇后問題 97
5.4 最大團(tuán)問題 105
5.5 圖的m著色問題 112
第6章 分支限界法 117
6.1 基本思想 117
6.2 裝載問題 117
6.3 0-1背包 123
6.4 旅行商問題 131
第2部分 算法實(shí)驗(yàn)
第1章 算法概述實(shí)驗(yàn) 143
實(shí)驗(yàn)1 算法概述 143
第2章 遞歸與分治法實(shí)驗(yàn) 145
實(shí)驗(yàn)1 二分搜索術(shù) 145
實(shí)驗(yàn)2 合并排序算法 146
實(shí)驗(yàn)3 快速排序算法 147
實(shí)驗(yàn)4 線性時(shí)間選擇算法 149
第3章 動態(tài)規(guī)劃實(shí)驗(yàn) 151
實(shí)驗(yàn)1 矩陣連乘問題 151
實(shí)驗(yàn)2 最長公共子序列問題 152
實(shí)驗(yàn)3 最優(yōu)二叉搜索樹問題 154
實(shí)驗(yàn)4 電路布線問題 156
實(shí)驗(yàn)5 0-1背包問題 157
第4章 貪心算法實(shí)驗(yàn) 160
實(shí)驗(yàn)1 活動安排問題 160
實(shí)驗(yàn)2 背包問題 162
實(shí)驗(yàn)3 哈夫曼編碼問題 163
實(shí)驗(yàn)4 單源最短路徑問題 164
實(shí)驗(yàn)5 最小生成樹問題 166
第5章 回溯法實(shí)驗(yàn) 168
實(shí)驗(yàn)1 裝載問題 168
實(shí)驗(yàn)2 批處理作業(yè)調(diào)度問題 169
實(shí)驗(yàn)3 n皇后問題 171
實(shí)驗(yàn)4 最大團(tuán)問題 173
實(shí)驗(yàn)5 圖的m著色問題 175
第6章 分支限界法實(shí)驗(yàn) 177
實(shí)驗(yàn)1 裝載問題 177
實(shí)驗(yàn)2 0-1背包問題 178
實(shí)驗(yàn)3 旅行商問題 180
參考文獻(xiàn) 182