算法設(shè)計(jì)與分析(第3版) 版權(quán)信息
- ISBN:9787302594390
- 條形碼:9787302594390 ; 978-7-302-59439-0
- 裝幀:70g膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>
算法設(shè)計(jì)與分析(第3版) 本書特色
《算法設(shè)計(jì)與分析(第3版)》是“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材;由具有25年算法與數(shù)據(jù)結(jié)構(gòu)教學(xué)經(jīng)驗(yàn),同時(shí)具有指導(dǎo)ACM競(jìng)賽經(jīng)驗(yàn)的省級(jí)教學(xué)名師王紅梅老師編著。100多所高校、近10萬(wàn)學(xué)子先后使用,是算法設(shè)計(jì)與分析課程的經(jīng)典教材。
將算法設(shè)計(jì)技術(shù)劃分為基本的算法設(shè)計(jì)技術(shù)、基于搜索的算法設(shè)計(jì)技術(shù)、NP問(wèn)題的算法設(shè)計(jì)技術(shù)三個(gè)模塊,內(nèi)容相互獨(dú)立,拓?fù)浣Y(jié)構(gòu)合理。
系統(tǒng)而全面地介紹了算法設(shè)計(jì)技術(shù),包括模擬法、遞推法、蠻力法、分治法、減治法、貪心法、動(dòng)態(tài)規(guī)劃法、深度優(yōu)先搜索、廣度優(yōu)先搜索、回溯法、A*算法、限界剪枝法、近似算法、概率算法和群智能算法。
將經(jīng)典問(wèn)題和算法設(shè)計(jì)技術(shù)很好地結(jié)合起來(lái),讀者可以體會(huì)同一算法設(shè)計(jì)技術(shù)在不同問(wèn)題中的應(yīng)用,以及相同問(wèn)題的不同解決方法。
兼顧技術(shù)層和實(shí)現(xiàn)層,注重算法設(shè)計(jì)過(guò)程,按照“問(wèn)題->想法->算法->程序”的模式,所有問(wèn)題都用偽代碼給出了算法描述,所有程序均在C++典型編程環(huán)境下調(diào)試通過(guò)。
附配實(shí)驗(yàn)項(xiàng)目、教學(xué)課件、程序源碼等數(shù)字化教學(xué)資源。
“十二五”普通高等教育本科國(guó)家級(jí)規(guī)劃教材;教學(xué)名師主筆,100多所高校、近10萬(wàn)學(xué)子先后使用的經(jīng)典教材,附配實(shí)驗(yàn)項(xiàng)目、教學(xué)課件、程序源碼等數(shù)字資源。
算法設(shè)計(jì)與分析(第3版) 內(nèi)容簡(jiǎn)介
本書將經(jīng)典問(wèn)題和算法設(shè)計(jì)技術(shù)結(jié)合,以讀者容易理解和接受的方式,系統(tǒng)介紹了算法設(shè)計(jì)技術(shù),包括模擬法、遞推法、蠻力法、分治法、減治法、貪心法、動(dòng)態(tài)規(guī)劃法、深度優(yōu)先搜索、廣度優(yōu)先搜索、回溯法、A*算法、限界剪枝法、近似算法、概率算法和群智能算法;同時(shí)以通俗易懂的方式,系統(tǒng)介紹了算法分析技術(shù),包括算法的時(shí)間復(fù)雜度分析、空間復(fù)雜度分析、**算法、確定性算法、非確定性算法、P類問(wèn)題、NP類問(wèn)題和NP接近問(wèn)題。所有問(wèn)題都用偽代碼給出了算法描述,并提供了C++語(yǔ)言程序源碼,且在C++語(yǔ)言的典型編程環(huán)境下調(diào)試通過(guò)。
本書案例豐富,敘述清晰,深入淺出,結(jié)合應(yīng)用,符合算法學(xué)習(xí)者的認(rèn)知規(guī)律,可作為高等院校計(jì)算機(jī)專業(yè)本科和研究生學(xué)習(xí)算法類課程的教材,適合準(zhǔn)備參加程序設(shè)計(jì)競(jìng)賽(NOIP或ACM)卻無(wú)從下手的學(xué)生,也特別適合算法愛(ài)好者學(xué)習(xí)參考。
算法設(shè)計(jì)與分析(第3版) 目錄
目錄
**篇基 礎(chǔ) 知 識(shí)
第1章算法設(shè)計(jì)基礎(chǔ)3
1.1什么是算法3
1.1.1算法的定義3
1.1.2算法的描述方法4
1.1.3算法在問(wèn)題求解中的地位6
1.2什么是好算法6
1.2.1如何評(píng)價(jià)算法6
1.2.2效率——算法的核心和靈魂7
1.3為什么要學(xué)習(xí)和研究算法8
1.3.1算法研究是推動(dòng)計(jì)算機(jī)技術(shù)發(fā)展的關(guān)鍵8
1.3.2算法訓(xùn)練能夠提高計(jì)算思維能力8
1.3.3程序員必須要學(xué)習(xí)算法嗎9
1.4如何設(shè)計(jì)算法9
1.4.1基本的數(shù)據(jù)結(jié)構(gòu)9
1.4.2重要的問(wèn)題類型11
1.4.3算法設(shè)計(jì)的一般過(guò)程13
1.5拓展與演練14
1.5.1算法研究與圖靈獎(jiǎng)14
1.5.2代碼優(yōu)化技巧15
實(shí)驗(yàn)1*大公約數(shù)17
習(xí)題118
第2章算法分析基礎(chǔ)19
2.1算法的時(shí)間復(fù)雜度分析19
2.1.1輸入規(guī)模與基本語(yǔ)句19
2.1.2算法的漸近分析21
2.1.3*好、*壞和平均情況22
2.1.4非遞歸算法的時(shí)間復(fù)雜度分析22
2.1.5遞歸算法的時(shí)間復(fù)雜度分析23
2.2算法的空間復(fù)雜度分析24
2.3算法的實(shí)驗(yàn)分析25
2.4拓展與演練26
2.4.1*優(yōu)算法26
2.4.2角谷猜想27
實(shí)驗(yàn)2排序算法的實(shí)驗(yàn)比較28
習(xí)題229
第3章模擬法33
3.1概述33
3.1.1模擬法的設(shè)計(jì)思想33
3.1.2一個(gè)簡(jiǎn)單的例子: 雞兔同籠問(wèn)題33
3.2數(shù)學(xué)問(wèn)題中的模擬法34
3.2.1約瑟夫環(huán)問(wèn)題34
3.2.2埃拉托色尼篩法35
3.3排序問(wèn)題中的模擬法37
3.3.1計(jì)數(shù)排序37
3.3.2顏色排序38
3.4拓展與演練39
3.4.1裝箱問(wèn)題39
3.4.2數(shù)字回轉(zhuǎn)方陣41
實(shí)驗(yàn)3埃氏篩法的優(yōu)化42
習(xí)題342
第4章遞推法45
4.1概述45
4.1.1遞推法的設(shè)計(jì)思想45
4.1.2一個(gè)簡(jiǎn)單的例子: 猴子吃桃45
4.2數(shù)學(xué)問(wèn)題中的遞推法46
4.2.1Fibonacci數(shù)列46
4.2.2Catalan數(shù)列46
4.3組合問(wèn)題中的遞推法48
4.3.1伯努利錯(cuò)裝信封問(wèn)題48
4.3.2旋轉(zhuǎn)的萬(wàn)花筒49
4.4拓展與演練49
4.4.1整數(shù)劃分49
4.4.2捕魚知多少50
實(shí)驗(yàn)4楊輝三角形51
習(xí)題451
第5章蠻力法53
5.1概述53
5.1.1蠻力法的設(shè)計(jì)思想53
5.1.2一個(gè)簡(jiǎn)單的例子: 百元買百雞問(wèn)題54
5.2查找問(wèn)題中的蠻力法54
5.2.1順序查找54
5.2.2串匹配問(wèn)題56
5.3排序問(wèn)題中的蠻力法61
5.3.1選擇排序61
5.3.2起泡排序62
5.4圖問(wèn)題中的蠻力法63
5.4.1哈密頓回路問(wèn)題63
5.4.2TSP問(wèn)題64
5.5幾何問(wèn)題中的蠻力法65
5.5.1*近對(duì)問(wèn)題65
5.5.2凸包問(wèn)題66
5.6拓展與演練68
5.6.1KMP算法中next值的計(jì)算68
5.6.20/1背包問(wèn)題69
實(shí)驗(yàn)5任務(wù)分配問(wèn)題70
習(xí)題571
第6章分治法73
6.1概述73
6.1.1分治法的設(shè)計(jì)思想73
6.1.2分治與遞歸74
6.1.3一個(gè)簡(jiǎn)單的例子: 漢諾塔問(wèn)題74
6.2排序問(wèn)題中的分治法75
6.2.1歸并排序75
6.2.2快速排序77
6.3組合問(wèn)題中的分治法80
6.3.1*大子段和問(wèn)題80
6.3.2棋盤覆蓋問(wèn)題82
6.4幾何問(wèn)題中的分治法84
6.4.1*近對(duì)問(wèn)題84
6.4.2凸包問(wèn)題86
6.5拓展與演練88
6.5.1擴(kuò)展歐幾里得算法88
6.5.2中國(guó)剩余定理89
實(shí)驗(yàn)6Karatsuba乘法90
習(xí)題691
第7章減治法93
7.1概述93
7.1.1減治法的設(shè)計(jì)思想93
7.1.2一個(gè)簡(jiǎn)單的例子: 俄式乘法94
7.2查找問(wèn)題中的減治法94
7.2.1折半查找94
7.2.2選擇問(wèn)題96
7.3排序問(wèn)題中的減治法98
7.3.1插入排序98
7.3.2堆排序99
7.4組合問(wèn)題中的減治法101
7.4.1淘汰賽冠軍問(wèn)題101
7.4.2假幣問(wèn)題102
7.5拓展與演練104
7.5.1兩個(gè)序列的中位數(shù)104
7.5.2topK問(wèn)題106
實(shí)驗(yàn)7假幣問(wèn)題的復(fù)雜版本107
習(xí)題7109
第8章貪心法111
8.1概述111
8.1.1貪心法的設(shè)計(jì)思想111
8.1.2一個(gè)簡(jiǎn)單的例子: 付款問(wèn)題111
8.2圖問(wèn)題中的貪心法112
8.2.1TSP問(wèn)題112
8.2.2圖著色問(wèn)題114
8.2.3*小生成樹(shù)116
8.3組合問(wèn)題中的貪心法119
8.3.1背包問(wèn)題119
8.3.2活動(dòng)安排問(wèn)題121
8.3.3埃及分?jǐn)?shù)123
8.4拓展與演練124
8.4.1貪心法的正確性證明124
8.4.2田忌賽馬126
實(shí)驗(yàn)8合并字符串127
習(xí)題8127
第9章動(dòng)態(tài)規(guī)劃法129
9.1概述129
9.1.1多階段決策過(guò)程129
9.1.2動(dòng)態(tài)規(guī)劃法的設(shè)計(jì)思想130
9.1.3一個(gè)簡(jiǎn)單的例子: 網(wǎng)格上的*短路徑131
9.2組合問(wèn)題中的動(dòng)態(tài)規(guī)劃法133
9.2.1*長(zhǎng)公共子序列133
9.2.20/1背包問(wèn)題135
9.3圖問(wèn)題中的動(dòng)態(tài)規(guī)劃法137
9.3.1多段圖的*短路徑137
9.3.2TSP問(wèn)題140
9.4查找問(wèn)題中的動(dòng)態(tài)規(guī)劃法141
9.4.1近似串匹配141
9.4.2*優(yōu)二叉查找樹(shù)144
9.5拓展與演練146
9.5.1*優(yōu)性原理146
9.5.2數(shù)塔問(wèn)題147
實(shí)驗(yàn)9*大子段和150
習(xí)題9150
第三篇基于搜索的算法設(shè)計(jì)技術(shù)
第10章深度優(yōu)先搜索155
10.1深度優(yōu)先搜索概述155
10.1.1深度優(yōu)先搜索的設(shè)計(jì)思想155
10.1.2山洞尋寶圖156
10.1.3城堡問(wèn)題157
10.2回溯法158
10.2.1問(wèn)題的解空間樹(shù)158
10.2.2回溯法的設(shè)計(jì)思想159
10.2.3回溯法的時(shí)間性能160
10.2.4素?cái)?shù)環(huán)問(wèn)題160
10.2.5八皇后問(wèn)題162
10.2.6圖著色問(wèn)題164
10.3拓展與演練167
10.3.1批處理作業(yè)調(diào)度167
10.3.2哈密頓回路170
實(shí)驗(yàn)100/1背包問(wèn)題172
習(xí)題10173
第11章廣度優(yōu)先搜索175
11.1廣度優(yōu)先搜索概述175
11.1.1廣度優(yōu)先搜索的設(shè)計(jì)思想175
11.1.2農(nóng)夫抓牛176
11.1.3騎士旅行177
11.2A算法179
11.2.1A算法的設(shè)計(jì)思想179
11.2.2八數(shù)碼問(wèn)題180
11.2.3多段圖的*短路徑問(wèn)題181
11.2.4任務(wù)分配問(wèn)題183
11.3限界剪枝法184
11.3.1限界剪枝法的設(shè)計(jì)思想184
11.3.20/1背包問(wèn)題185
11.3.3TSP問(wèn)題187
11.3.4圓排列問(wèn)題189
11.4拓展與演練191
11.4.1限界剪枝法的關(guān)鍵問(wèn)題191
11.4.2批處理作業(yè)調(diào)度問(wèn)題192
實(shí)驗(yàn)11電路布線問(wèn)題194
習(xí)題11195
第四篇NP問(wèn)題的算法設(shè)計(jì)技術(shù)
第12章問(wèn)題的復(fù)雜性199
12.1問(wèn)題的復(fù)雜性分類199
12.1.1什么是計(jì)算199
12.1.2可計(jì)算問(wèn)題與不可計(jì)算問(wèn)題201
12.1.3易解問(wèn)題與難解問(wèn)題202
12.2P類問(wèn)題與NP類問(wèn)題204
12.2.1判定問(wèn)題204
12.2.2確定性算法與P類問(wèn)題205
12.2.3非確定性算法與NP類問(wèn)題205
12.3NP完全問(wèn)題206
12.3.1問(wèn)題變換206
12.3.2NP完全問(wèn)題的定義207
12.3.3基本的NP完全問(wèn)題207
12.4拓展與演練208
12.4.1k帶圖靈機(jī)208
12.4.2NP類問(wèn)題的計(jì)算機(jī)處理209
實(shí)驗(yàn)12SAT問(wèn)題210
習(xí)題12210第13章近似算法213
13.1概述213
13.1.1近似算法的設(shè)計(jì)思想213
13.1.2一個(gè)簡(jiǎn)單的例子: 求π的近似值214
13.2圖問(wèn)題中的近似算法215
13.2.1頂點(diǎn)覆蓋問(wèn)題215
13.2.2TSP問(wèn)題216
13.3組合問(wèn)題中的近似算法217
13.3.1裝箱問(wèn)題217
13.3.2多機(jī)調(diào)度問(wèn)題219
13.4拓展與演練222
13.4.1帶權(quán)頂點(diǎn)覆蓋問(wèn)題222
13.4.2子集和問(wèn)題223
實(shí)驗(yàn)13TSP問(wèn)題的近似算法226
習(xí)題13227
第14章概率算法229
14.1概述229
14.1.1概率算法的設(shè)計(jì)思想229
14.1.2隨機(jī)數(shù)生成器230
14.2舍伍德型概率算法231
14.2.1舍伍德型概率算法的設(shè)計(jì)思想231
14.2.2快速排序231
14.2.3二叉查找樹(shù)232
14.3拉斯維加斯型概率算法234
14.3.1拉斯維加斯型概率算法的設(shè)計(jì)思想234
14.3.2八皇后問(wèn)題234
14.3.3整數(shù)因子劃分問(wèn)題235
14.4蒙特卡羅型概率算法236
14.4.1蒙特卡羅型概率算法的設(shè)計(jì)思想236
14.4.2主元素問(wèn)題237
14.4.3素?cái)?shù)測(cè)試238
14.5拓展與演練239
14.5.1隨機(jī)數(shù)與隨機(jī)數(shù)生成器239
14.5.2蒙特卡羅型算法計(jì)算定積分240
實(shí)驗(yàn)14隨機(jī)數(shù)生成器241
習(xí)題14241
第15章群智能算法243
15.1遺傳算法243
15.1.1遺傳算法的基本思想243
15.1.2遺傳算法的關(guān)鍵問(wèn)題244
15.1.3應(yīng)用舉例245
15.2蟻群算法246
15.2.1蟻群算法的基本原理246
15.2.2蟻群算法的參數(shù)設(shè)定247
15.2.3應(yīng)用舉例248
15.3粒子群算法249
15.3.1粒子群算法的基本思想249
15.3.2粒子群算法的參數(shù)分析250
15.3.3應(yīng)用舉例250
實(shí)驗(yàn)15函數(shù)的*大值251
習(xí)題15251
名詞索引253
參考文獻(xiàn)257
展開(kāi)全部
算法設(shè)計(jì)與分析(第3版) 作者簡(jiǎn)介
王紅梅,女,53歲,三級(jí)教授,碩士生導(dǎo)師,省級(jí)教學(xué)名師,省級(jí)教學(xué)團(tuán)隊(duì)“算法與程序設(shè)計(jì)”帶頭人,從事計(jì)算機(jī)專業(yè)教學(xué)工作24年,國(guó)家級(jí)精品課“計(jì)算機(jī)學(xué)科概論”、國(guó)家級(jí)一流課程“數(shù)據(jù)結(jié)構(gòu)”負(fù)責(zé)人,出版了《數(shù)據(jù)結(jié)構(gòu)(C++版)》、《計(jì)算機(jī)學(xué)科概論》、《程序設(shè)計(jì)基礎(chǔ)》、《算法設(shè)計(jì)與分析》等教材,均被評(píng)為“十二五”國(guó)家級(jí)規(guī)劃教材,《數(shù)據(jù)結(jié)構(gòu)(C++版)》推薦參評(píng)教育部首批優(yōu)秀教材,獲省級(jí)教學(xué)成果獎(jiǎng)一等獎(jiǎng)1項(xiàng)、二等獎(jiǎng)2項(xiàng)、三等獎(jiǎng)2項(xiàng),發(fā)表學(xué)術(shù)論文20余篇。