一,、課程名稱(中英文)
中文名稱:算法設(shè)計與分析
英文名稱:Algorithms Design and Analysis
二,、課程性質(zhì)
專業(yè)方向課選修
三,、學(xué)時
總學(xué)時:48(理論學(xué)時:32學(xué)時,;實驗學(xué)時:16學(xué)時)
四,、主要教學(xué)內(nèi)容
第1章 緒論 1
1.1 什么是算法 2
習(xí)題1.1 6
1.2 算法問題求解基礎(chǔ) 7
1.2.1 理解問題 8
1.2.2 了解計算設(shè)備的性能 8
1.2.3 在精確解法和近似解法之間做出選擇 9
1.2.4 算法的設(shè)計技術(shù) 9
1.2.5 確定適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu) 9
1.2.6 算法的描述 10
1.2.7 算法的正確性證明 10
1.2.8 算法的分析 11
1.2.9 為算法寫代碼 12
習(xí)題1.2 13
1.3 重要的問題類型 14
1.3.1 排序 15
1.3.2 查找 16
1.3.3 字符串處理 16
1.3.4 圖問題 16
1.3.5 組合問題 17
1.3.6 幾何問題 17
1.3.7 數(shù)值問題 18
習(xí)題1.3 18
1.4 基本數(shù)據(jù)結(jié)構(gòu) 20
1.4.1 線性數(shù)據(jù)結(jié)構(gòu) 20
1.4.2 圖 22
1.4.3 樹 25
1.4.4 集合與字典 28
習(xí)題1.4 29
小結(jié) 30
第2章 算法效率分析基礎(chǔ) 32
2.1 分析框架 33
2.1.1 輸入規(guī)模的度量 33
2.1.2 運行時間的度量單位 34
2.1.3 增長次數(shù) 35
2.1.4 算法的最優(yōu),、最差和平均效率 36
2.1.5 分析框架概要 38
習(xí)題2.1 39
2.2 漸近符號和基本效率類型 40
2.2.1 非正式的介紹 40
2.2.2 符號O 41
2.2.3 符號 42
2.2.4 符號 42
2.2.5 漸近符號的有用特性 43
2.2.6 利用極限比較增長次數(shù) 44
2.2.7 基本的效率類型 45
習(xí)題2.2 46
2.3 非遞歸算法的數(shù)學(xué)分析 48
習(xí)題2.3 52
2.4 遞歸算法的數(shù)學(xué)分析 54
習(xí)題2.4 59
2.5 例題:計算第n個斐波那契數(shù) 62
習(xí)題2.5 65
2.6 算法的經(jīng)驗分析 66
習(xí)題2.6 69
2.7 算法可視法 70
小結(jié) 73
第3章 蠻力法 75
3.1 選擇排序和冒泡排序 76
3.1.1 選擇排序 76
3.1.2 冒泡排序 77
習(xí)題3.1 78
3.2 順序查找和蠻力字符串匹配 80
3.2.1 順序查找 80
3.2.2 蠻力字符串匹配 81
習(xí)題3.2 82
3.3 最近對和凸包問題的蠻力算法 83
3.3.1 最近對問題 83
3.3.2 凸包問題 84
習(xí)題3.3 87
3.4 窮舉查找 89
3.4.1 旅行商問題 89
3.4.2 背包問題 90
3.4.3 分配問題 91
習(xí)題3.4 93
3.5 深度優(yōu)先查找和廣度優(yōu)先查找 94
3.5.1 深度優(yōu)先查找 94
3.5.2 廣度優(yōu)先查找 96
習(xí)題3.5 98
小結(jié) 100
第4章 減治法 101
4.1 插入排序 103
習(xí)題4.1 105
4.2 拓?fù)渑判?106
習(xí)題4.2 109
4.3 生成組合對象的算法 111
4.3.1 生成排列 111
4.3.2 生成子集 113
習(xí)題4.3 114
4.4 減常因子算法 115
4.4.1 折半查找 116
4.4.2 假幣問題 117
4.4.3 俄式乘法 118
4.4.4 約瑟夫斯問題 119
習(xí)題4.4 120
4.5 減可變規(guī)模算法 122
4.5.1 計算中值和選擇問題 122
4.5.2 插值查找 125
4.5.3 二叉查找樹的查找和插入 126
4.5.4 拈游戲 127
習(xí)題4.5 128
小結(jié) 129
第5章 分治法 131
5.1 合并排序 133
習(xí)題5.1 135
5.2 快速排序 136
習(xí)題5.2 140
5.3 二叉樹遍歷及其相關(guān)特性 141
習(xí)題5.3 143
5.4 大整數(shù)乘法和Strassen矩陣乘法 144
5.4.1 大整數(shù)乘法 145
5.4.2 Strassen矩陣乘法 146
習(xí)題5.4 148
5.5 用分治法解最近對問題和凸包問題 149
5.5.1 最近對問題 149
5.5.2 凸包問題 151
習(xí)題5.5 153
小結(jié) 154
第6章 變治法 155
6.1 預(yù)排序 156
習(xí)題6.1 158
6.2 高斯消去法 160
6.2.1 LU分解 164
6.2.2 計算矩陣的逆 165
6.2.3 計算矩陣的行列式 166
習(xí)題6.2 167
6.3 平衡查找樹 168
6.3.1 AVL樹 169
6.3.2 2-3樹 173
習(xí)題6.3 174
6.4 堆和堆排序 175
6.4.1 堆的概念 176
6.4.2 堆排序 180
習(xí)題6.4 181
6.5 霍納法則和二進制冪 182
6.5.1 霍納法則 182
6.5.2 二進制冪 184
習(xí)題6.5 186
6.6 問題化簡 187
6.6.1 求最小公倍數(shù) 188
6.6.2 計算圖中的路徑數(shù)量 189
6.6.3 優(yōu)化問題的化簡 189
6.6.4 線性規(guī)劃 190
6.6.5 簡化為圖問題 192
習(xí)題6.6 193
小結(jié) 194
第7章 時空權(quán)衡 196
7.1 計數(shù)排序 197
習(xí)題7.1 199
7.2 字符串匹配中的輸入增強技術(shù) 200
7.2.1 Horspool算法 201
7.2.2 Boyer-Moore算法 204
習(xí)題7.2 207
7.3 散列法 209
7.3.1 開散列(分離鏈) 210
7.3.2 閉散列(開式尋址) 211
習(xí)題7.3 213
7.4 B樹 214
習(xí)題7.4 217
小結(jié) 218
第8章 動態(tài)規(guī)劃 219
8.1 三個基本例子 220
習(xí)題8.1 224
8.2 背包問題和記憶功能 226
8.2.1 背包問題 226
8.2.2 記憶化 227
習(xí)題8.2 229
8.3 最優(yōu)二叉查找樹 230
習(xí)題8.3 234
8.4 Warshall算法和Floyd算法 235
8.4.1 Warshall算法 235
8.4.2 計算完全最短路徑的Floyd算法 238
習(xí)題8.4 241
小結(jié) 242
第9章 貪婪技術(shù) 243
9.1 Prim算法 245
習(xí)題9.1 249
9.2 Kruskal算法 250
習(xí)題9.2 255
9.3 Dijkstra算法 256
習(xí)題9.3 259
9.4 哈夫曼樹及編碼 260
習(xí)題9.4 264
小結(jié) 265
第10章 迭代改進 266
10.1 單純形法 267
10.1.1 線性規(guī)劃的幾何解釋 267
10.1.2 單純形法概述 270
10.1.3 單純形法其他要點 275
習(xí)題10.1 276
10.2 最大流量問題 278
習(xí)題10.2 285
10.3 二分圖的最大匹配 286
習(xí)題10.3 291
10.4 穩(wěn)定婚姻問題 292
習(xí)題10.4 295
小結(jié) 296
第11章 算法能力的極限 297
11.1 如何求下界 298
11.1.1 平凡下界 298
11.1.2 信息論下界 299
11.1.3 敵手下界 299
11.1.4 問題化簡 300
習(xí)題11.1 302
11.2 決策樹 302
11.2.1 排序的決策樹 303
11.2.2 查找有序數(shù)組的決策樹 305
習(xí)題11.2 306
11.3 P,、NP和NP完全問題 308
11.3.1 P和NP問題 308
11.3.2 NP完全問題 311
習(xí)題11.3 314
11.4 數(shù)值算法的挑戰(zhàn) 316
習(xí)題11.4 322
小結(jié) 323
第12章 超越算法能力的極限 325
12.1 回溯法 325
12.1.1 n皇后問題 326
12.1.2 哈密頓回路問題 328
12.1.3 子集和問題 328
12.1.4 一般性說明 329
習(xí)題12.1 331
12.2 分支界限法 332
12.2.1 分配問題 332
12.2.2 背包問題 335
12.2.3 旅行商問題 336
習(xí)題12.2 338
12.3 NP困難問題的近似算法 339
12.3.1 旅行商問題的近似算法 340
12.3.2 背包問題的近似算法 349
習(xí)題12.3 352
12.4 解非線性方程的算法 353
12.4.1 平分法 355
12.4.2 試位法 357
12.4.3 牛頓法 358
習(xí)題12.4 360
小結(jié) 361
跋 363
附錄A 算法分析的實用公式 366
附錄B 遞推關(guān)系簡明指南 369