272,138
次編輯
變更
算法设计与分析
,创建页面,内容为“《'''算法设计与分析'''》,王红梅 著,出版社: 清华大学出版社。 清华大学出版社成立于1980年6月,是教育部主管、清…”
《'''算法设计与分析'''》,王红梅 著,出版社: 清华大学出版社。
清华大学出版社成立于1980年6月,是教育部主管、[[清华大学]]主办的综合性大学出版社<ref>[http://www.zhongyw.com.cn/news/show-53574.html 我国出版社的等级划分和分类标准],知网出书,2021-03-01</ref>。清华社现年出版图书、音像制品、电子出版物等近3000种,[[销售]]规模和综合实力以及在高等教育教材市场、科技图书市场、馆配图书市场占有率均名列前茅<ref>[http://www.tup.tsinghua.edu.cn/aboutus/qyjj.html 企业简介],清华大学出版社有限公司</ref>。
==目录==
篇基 础 知 识
章算法设计基础3
1.1什么是算法3
1.1.1算法的定义3
1.1.2[[算法]]的描述方法4
1.1.3算法在问题求解中的地位6
1.2什么是好算法6
1.2.1如何评价算法6
1.2.2效率——算法的核心和灵魂7
1.3为什么要学习和研究算法8
1.3.1算法研究是推动计算机技术发展的关键8
1.3.2算法训练能够提高计算思维能力8
1.3.3程序员要学习算法9
1.4如何设计算法9
1.4.1基本的[[数据]]结构9
1.4.2重要的问题类型11
1.4.3算法设计的一般过程13
1.5拓展与演练14
1.5.1算法研究与图灵奖14
1.5.2代码优化技巧15
实验1公约数17
习题118第2章算法分析基础19
2.1算法的时间复杂度分析19
2.1.1输入规模与基本语句192.1.2算法的渐近分析21
2.1.3、最坏和平均情况22
2.1.4非递归算法的时间复杂度分析22
2.1.5递归算法的时间复杂度分析23
2.2算法的空间复杂度分析24
2.3算法的实验分析25
2.4拓展与演练26
2.4.1算法26
2.4.2角谷猜想27
实验2排序算法的实验比较28
习题229
算法设计与分析(第3版)目录第二篇基本的算法设计技术
第3章模拟法33
3.1概述33
3.1.1模拟法的设计思想33
3.1.2一个简单的例子: 鸡兔同笼问题33
3.2数学问题中的模拟法34
3.2.1约瑟夫环问题34
3.2.2埃拉托色尼筛法35
3.3排序问题中的模拟法37
3.3.1计数排序37
3.3.2颜色排序38
3.4拓展与演练39
3.4.1装箱问题39
3.4.2数字回转方阵41
实验3埃氏筛法的优化42
习题342第4章递推法45
4.1概述45
4.1.1递推法的设计思想45
4.1.2一个简单的例子: 猴子吃桃45
4.2数学问题中的递推法46
4.2.1Fibonacci数列46
4.2.2Catalan数列46
4.3组合问题中的递推法48
4.3.1伯努利错装信封问题48
4.3.2旋转的万花筒49
4.4拓展与演练49
4.4.1整数划分49
4.4.2捕鱼知多少50
实验4杨辉三角形51
习题451第5章蛮力法53
5.1概述53
5.1.1蛮力法的设计思想53
5.1.2一个简单的例子: 百元买百鸡问题54
5.2查找问题中的蛮力法54
5.2.1顺序查找54
5.2.2串匹配问题56
5.3排序问题中的蛮力法61
5.3.1选择排序61
5.3.2起泡排序62
5.4图问题中的蛮力法63
5.4.1哈密顿回路问题63
5.4.2TSP问题64
5.5几何问题中的蛮力法65
5.5.1最近对问题65
5.5.2凸包问题66
5.6拓展与演练68
5.6.1KMP算法中next值的计算68
5.6.20/1背包问题69
实验5任务分配问题70
习题571第6章分治法73
6.1概述73
6.1.1分治法的设计思想73
6.1.2分治与递归74
6.1.3一个简单的例子: 汉诺塔问题74
6.2排序问题中的分治法75
6.2.1归并排序75
6.2.2快速排序77
6.3组合问题中的分治法80
6.3.1子段和问题80
6.3.2棋盘覆盖问题82
6.4几何问题中的分治法84
6.4.1最近对问题84
6.4.2凸包问题86
6.5拓展与演练88
6.5.1扩展欧几里得算法88
6.5.2中国剩余定理89
实验6Karatsuba乘法90
习题691第7章减治法93
7.1概述93
7.1.1减治法的设计思想93
7.1.2一个简单的例子: 俄式乘法94
7.2查找问题中的减治法94
7.2.1折半查找94
7.2.2选择问题96
7.3排序问题中的减治法98
7.3.1插入排序98
7.3.2堆排序99
7.4组合问题中的减治法101
7.4.1淘汰赛问题101
7.4.2问题102
7.5拓展与演练104
7.5.1两个序列的中位数104
7.5.2topK问题106
实验7问题的复杂版本107
习题7109第8章贪心法111
8.1概述111
8.1.1贪心法的设计思想111
8.1.2一个简单的例子: 付款问题111
8.2图问题中的贪心法112
8.2.1TSP问题112
8.2.2图着色问题114
8.2.3最小生成树116
8.3组合问题中的贪心法119
8.3.1背包问题119
8.3.2活动安排问题121
8.3.3埃及分数123
8.4拓展与演练124
8.4.1贪心法的正确性证明124
8.4.2田忌赛马126
实验8合并字符串127
习题8127第9章动态规划法129
9.1概述129
9.1.1多阶段决策过程129
9.1.2动态规划法的设计思想130
9.1.3一个简单的例子: 网格上的最短路径131
9.2组合问题中的动态规划法133
9.2.1公共子序列133
9.2.20/1背包问题135
9.3图问题中的动态规划法137
9.3.1多段图的最短路径137
9.3.2TSP问题140
9.4查找问题中的动态规划法141
9.4.1近似串匹配141
9.4.2二叉查找树144
9.5拓展与演练146
9.5.1性原理146
9.5.2数塔问题147
实验9子段和150
习题9150
第三篇基于搜索的算法设计技术
0章深度优先搜索155
10.1深度优先搜索概述155
10.1.1深度优先搜索的设计思想155
10.1.2山洞寻宝图156
10.1.3城堡问题157
10.2回溯法158
10.2.1问题的解空间树158
10.2.2回溯法的设计思想159
10.2.3回溯法的时间性能160
10.2.4素数环问题160
10.2.5八皇后问题162
10.2.6图着色问题164
10.3拓展与演练167
10.3.1批处理作业调度167
10.3.2哈密顿回路170
实验100/1背包问题172
习题101731章广度优先搜索175
11.1广度优先搜索概述175
11.1.1广度优先搜索的设计思想175
11.1.2农夫抓牛176
11.1.3骑士旅行177
11.2A算法179
11.2.1A算法的设计思想179
11.2.2八数码问题180
11.2.3多段图的最短路径问题181
11.2.4任务分配问题183
11.3限界剪枝法184
11.3.1限界剪枝法的设计思想184
11.3.20/1背包问题185
11.3.3TSP问题187
11.3.4圆排列问题189
11.4拓展与演练191
11.4.1限界剪枝法的关键问题191
11.4.2批处理作业调度问题192
实验11电路布线问题194
习题11195
第四篇NP问题的算法设计技术
2章问题的复杂性199
12.1问题的复杂性分类199
12.1.1什么是计算199
12.1.2可计算问题与不可计算问题201
12.1.3易解问题与难解问题202
12.2P类问题与NP类问题204
12.2.1判定问题204
12.2.2确定性算法与P类问题205
12.2.3非确定性算法与NP类问题205
12.3NP问题206
12.3.1问题变换206
12.3.2NP问题的定义207
12.3.3基本的NP问题207
12.4拓展与演练208
12.4.1k带图灵机208
12.4.2NP类问题的计算机处理209
实验12SAT问题210
习题122103章近似算法213
13.1概述213
13.1.1近似算法的设计思想213
13.1.2一个简单的例子: 求π的近似值214
13.2图问题中的近似算法215
13.2.1顶点覆盖问题215
13.2.2TSP问题216
13.3组合问题中的近似算法217
13.3.1装箱问题217
13.3.2多机调度问题219
13.4拓展与演练222
13.4.1带权顶点覆盖问题222
13.4.2子集和问题223
实验13TSP问题的近似算法226
习题132274章概率算法229
14.1概述229
14.1.1概率算法的设计思想229
14.1.2数生成器230
14.2舍伍德型概率算法231
14.2.1舍伍德型概率算法的设计思想231
14.2.2快速排序231
14.2.3二叉查找树232
14.3拉斯维加斯型概率算法234
14.3.1拉斯维加斯型概率算法的设计思想234
14.3.2八皇后问题234
14.3.3整数因子划分问题235
14.4蒙特卡罗型概率算法236
14.4.1蒙特卡罗型概率算法的设计思想236
14.4.2主元素问题237
14.4.3素数测试238
14.5拓展与演练239
14.5.1数与数生成器239
14.5.2蒙特卡罗型算法计算定积分240
实验14数生成器241
习题142415章群智能算法243
15.1遗传算法243
15.1.1遗传算法的基本思想243
15.1.2遗传算法的关键问题244
15.1.3应用举例245
15.2蚁群算法246
15.2.1蚁群算法的基本原理246
15.2.2蚁群算法的参数设定247
15.2.3应用举例248
15.3粒子群算法249
15.3.1粒子群算法的基本思想249
15.3.2粒子群算法的参数分析250
15.3.3应用举例250
实验15函数的值251
习题15251名词索引253参考文献257
==参考文献==
[[Category:040 類書總論;百科全書總論]]
清华大学出版社成立于1980年6月,是教育部主管、[[清华大学]]主办的综合性大学出版社<ref>[http://www.zhongyw.com.cn/news/show-53574.html 我国出版社的等级划分和分类标准],知网出书,2021-03-01</ref>。清华社现年出版图书、音像制品、电子出版物等近3000种,[[销售]]规模和综合实力以及在高等教育教材市场、科技图书市场、馆配图书市场占有率均名列前茅<ref>[http://www.tup.tsinghua.edu.cn/aboutus/qyjj.html 企业简介],清华大学出版社有限公司</ref>。
==目录==
篇基 础 知 识
章算法设计基础3
1.1什么是算法3
1.1.1算法的定义3
1.1.2[[算法]]的描述方法4
1.1.3算法在问题求解中的地位6
1.2什么是好算法6
1.2.1如何评价算法6
1.2.2效率——算法的核心和灵魂7
1.3为什么要学习和研究算法8
1.3.1算法研究是推动计算机技术发展的关键8
1.3.2算法训练能够提高计算思维能力8
1.3.3程序员要学习算法9
1.4如何设计算法9
1.4.1基本的[[数据]]结构9
1.4.2重要的问题类型11
1.4.3算法设计的一般过程13
1.5拓展与演练14
1.5.1算法研究与图灵奖14
1.5.2代码优化技巧15
实验1公约数17
习题118第2章算法分析基础19
2.1算法的时间复杂度分析19
2.1.1输入规模与基本语句192.1.2算法的渐近分析21
2.1.3、最坏和平均情况22
2.1.4非递归算法的时间复杂度分析22
2.1.5递归算法的时间复杂度分析23
2.2算法的空间复杂度分析24
2.3算法的实验分析25
2.4拓展与演练26
2.4.1算法26
2.4.2角谷猜想27
实验2排序算法的实验比较28
习题229
算法设计与分析(第3版)目录第二篇基本的算法设计技术
第3章模拟法33
3.1概述33
3.1.1模拟法的设计思想33
3.1.2一个简单的例子: 鸡兔同笼问题33
3.2数学问题中的模拟法34
3.2.1约瑟夫环问题34
3.2.2埃拉托色尼筛法35
3.3排序问题中的模拟法37
3.3.1计数排序37
3.3.2颜色排序38
3.4拓展与演练39
3.4.1装箱问题39
3.4.2数字回转方阵41
实验3埃氏筛法的优化42
习题342第4章递推法45
4.1概述45
4.1.1递推法的设计思想45
4.1.2一个简单的例子: 猴子吃桃45
4.2数学问题中的递推法46
4.2.1Fibonacci数列46
4.2.2Catalan数列46
4.3组合问题中的递推法48
4.3.1伯努利错装信封问题48
4.3.2旋转的万花筒49
4.4拓展与演练49
4.4.1整数划分49
4.4.2捕鱼知多少50
实验4杨辉三角形51
习题451第5章蛮力法53
5.1概述53
5.1.1蛮力法的设计思想53
5.1.2一个简单的例子: 百元买百鸡问题54
5.2查找问题中的蛮力法54
5.2.1顺序查找54
5.2.2串匹配问题56
5.3排序问题中的蛮力法61
5.3.1选择排序61
5.3.2起泡排序62
5.4图问题中的蛮力法63
5.4.1哈密顿回路问题63
5.4.2TSP问题64
5.5几何问题中的蛮力法65
5.5.1最近对问题65
5.5.2凸包问题66
5.6拓展与演练68
5.6.1KMP算法中next值的计算68
5.6.20/1背包问题69
实验5任务分配问题70
习题571第6章分治法73
6.1概述73
6.1.1分治法的设计思想73
6.1.2分治与递归74
6.1.3一个简单的例子: 汉诺塔问题74
6.2排序问题中的分治法75
6.2.1归并排序75
6.2.2快速排序77
6.3组合问题中的分治法80
6.3.1子段和问题80
6.3.2棋盘覆盖问题82
6.4几何问题中的分治法84
6.4.1最近对问题84
6.4.2凸包问题86
6.5拓展与演练88
6.5.1扩展欧几里得算法88
6.5.2中国剩余定理89
实验6Karatsuba乘法90
习题691第7章减治法93
7.1概述93
7.1.1减治法的设计思想93
7.1.2一个简单的例子: 俄式乘法94
7.2查找问题中的减治法94
7.2.1折半查找94
7.2.2选择问题96
7.3排序问题中的减治法98
7.3.1插入排序98
7.3.2堆排序99
7.4组合问题中的减治法101
7.4.1淘汰赛问题101
7.4.2问题102
7.5拓展与演练104
7.5.1两个序列的中位数104
7.5.2topK问题106
实验7问题的复杂版本107
习题7109第8章贪心法111
8.1概述111
8.1.1贪心法的设计思想111
8.1.2一个简单的例子: 付款问题111
8.2图问题中的贪心法112
8.2.1TSP问题112
8.2.2图着色问题114
8.2.3最小生成树116
8.3组合问题中的贪心法119
8.3.1背包问题119
8.3.2活动安排问题121
8.3.3埃及分数123
8.4拓展与演练124
8.4.1贪心法的正确性证明124
8.4.2田忌赛马126
实验8合并字符串127
习题8127第9章动态规划法129
9.1概述129
9.1.1多阶段决策过程129
9.1.2动态规划法的设计思想130
9.1.3一个简单的例子: 网格上的最短路径131
9.2组合问题中的动态规划法133
9.2.1公共子序列133
9.2.20/1背包问题135
9.3图问题中的动态规划法137
9.3.1多段图的最短路径137
9.3.2TSP问题140
9.4查找问题中的动态规划法141
9.4.1近似串匹配141
9.4.2二叉查找树144
9.5拓展与演练146
9.5.1性原理146
9.5.2数塔问题147
实验9子段和150
习题9150
第三篇基于搜索的算法设计技术
0章深度优先搜索155
10.1深度优先搜索概述155
10.1.1深度优先搜索的设计思想155
10.1.2山洞寻宝图156
10.1.3城堡问题157
10.2回溯法158
10.2.1问题的解空间树158
10.2.2回溯法的设计思想159
10.2.3回溯法的时间性能160
10.2.4素数环问题160
10.2.5八皇后问题162
10.2.6图着色问题164
10.3拓展与演练167
10.3.1批处理作业调度167
10.3.2哈密顿回路170
实验100/1背包问题172
习题101731章广度优先搜索175
11.1广度优先搜索概述175
11.1.1广度优先搜索的设计思想175
11.1.2农夫抓牛176
11.1.3骑士旅行177
11.2A算法179
11.2.1A算法的设计思想179
11.2.2八数码问题180
11.2.3多段图的最短路径问题181
11.2.4任务分配问题183
11.3限界剪枝法184
11.3.1限界剪枝法的设计思想184
11.3.20/1背包问题185
11.3.3TSP问题187
11.3.4圆排列问题189
11.4拓展与演练191
11.4.1限界剪枝法的关键问题191
11.4.2批处理作业调度问题192
实验11电路布线问题194
习题11195
第四篇NP问题的算法设计技术
2章问题的复杂性199
12.1问题的复杂性分类199
12.1.1什么是计算199
12.1.2可计算问题与不可计算问题201
12.1.3易解问题与难解问题202
12.2P类问题与NP类问题204
12.2.1判定问题204
12.2.2确定性算法与P类问题205
12.2.3非确定性算法与NP类问题205
12.3NP问题206
12.3.1问题变换206
12.3.2NP问题的定义207
12.3.3基本的NP问题207
12.4拓展与演练208
12.4.1k带图灵机208
12.4.2NP类问题的计算机处理209
实验12SAT问题210
习题122103章近似算法213
13.1概述213
13.1.1近似算法的设计思想213
13.1.2一个简单的例子: 求π的近似值214
13.2图问题中的近似算法215
13.2.1顶点覆盖问题215
13.2.2TSP问题216
13.3组合问题中的近似算法217
13.3.1装箱问题217
13.3.2多机调度问题219
13.4拓展与演练222
13.4.1带权顶点覆盖问题222
13.4.2子集和问题223
实验13TSP问题的近似算法226
习题132274章概率算法229
14.1概述229
14.1.1概率算法的设计思想229
14.1.2数生成器230
14.2舍伍德型概率算法231
14.2.1舍伍德型概率算法的设计思想231
14.2.2快速排序231
14.2.3二叉查找树232
14.3拉斯维加斯型概率算法234
14.3.1拉斯维加斯型概率算法的设计思想234
14.3.2八皇后问题234
14.3.3整数因子划分问题235
14.4蒙特卡罗型概率算法236
14.4.1蒙特卡罗型概率算法的设计思想236
14.4.2主元素问题237
14.4.3素数测试238
14.5拓展与演练239
14.5.1数与数生成器239
14.5.2蒙特卡罗型算法计算定积分240
实验14数生成器241
习题142415章群智能算法243
15.1遗传算法243
15.1.1遗传算法的基本思想243
15.1.2遗传算法的关键问题244
15.1.3应用举例245
15.2蚁群算法246
15.2.1蚁群算法的基本原理246
15.2.2蚁群算法的参数设定247
15.2.3应用举例248
15.3粒子群算法249
15.3.1粒子群算法的基本思想249
15.3.2粒子群算法的参数分析250
15.3.3应用举例250
实验15函数的值251
习题15251名词索引253参考文献257
==参考文献==
[[Category:040 類書總論;百科全書總論]]