算法设计与分析(第3版) 版权信息
- ISBN:9787302594390
- 条形码:9787302594390 ; 978-7-302-59439-0
- 装帧:70g胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
算法设计与分析(第3版) 本书特色
《算法设计与分析(第3版)》是“十二五”普通高等教育本科国家级规划教材;由具有25年算法与数据结构教学经验,同时具有指导ACM竞赛经验的省级教学名师王红梅老师编著。100多所高校、近10万学子先后使用,是算法设计与分析课程的经典教材。
将算法设计技术划分为基本的算法设计技术、基于搜索的算法设计技术、NP问题的算法设计技术三个模块,内容相互独立,拓扑结构合理。
系统而全面地介绍了算法设计技术,包括模拟法、递推法、蛮力法、分治法、减治法、贪心法、动态规划法、深度优先搜索、广度优先搜索、回溯法、A*算法、限界剪枝法、近似算法、概率算法和群智能算法。
将经典问题和算法设计技术很好地结合起来,读者可以体会同一算法设计技术在不同问题中的应用,以及相同问题的不同解决方法。
兼顾技术层和实现层,注重算法设计过程,按照“问题->想法->算法->程序”的模式,所有问题都用伪代码给出了算法描述,所有程序均在C++典型编程环境下调试通过。
附配实验项目、教学课件、程序源码等数字化教学资源。
“十二五”普通高等教育本科国家级规划教材;教学名师主笔,100多所高校、近10万学子先后使用的经典教材,附配实验项目、教学课件、程序源码等数字资源。
算法设计与分析(第3版) 内容简介
本书将经典问题和算法设计技术结合,以读者容易理解和接受的方式,系统介绍了算法设计技术,包括模拟法、递推法、蛮力法、分治法、减治法、贪心法、动态规划法、深度优先搜索、广度优先搜索、回溯法、A*算法、限界剪枝法、近似算法、概率算法和群智能算法;同时以通俗易懂的方式,系统介绍了算法分析技术,包括算法的时间复杂度分析、空间复杂度分析、**算法、确定性算法、非确定性算法、P类问题、NP类问题和NP接近问题。所有问题都用伪代码给出了算法描述,并提供了C++语言程序源码,且在C++语言的典型编程环境下调试通过。
本书案例丰富,叙述清晰,深入浅出,结合应用,符合算法学习者的认知规律,可作为高等院校计算机专业本科和研究生学习算法类课程的教材,适合准备参加程序设计竞赛(NOIP或ACM)却无从下手的学生,也特别适合算法爱好者学习参考。
算法设计与分析(第3版) 目录
目录
**篇基 础 知 识
第1章算法设计基础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输入规模与基本语句19
2.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章模拟法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
第三篇基于搜索的算法设计技术
第10章深度优先搜索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
习题10173
第11章广度优先搜索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问题的算法设计技术
第12章问题的复杂性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
习题12210第13章近似算法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
习题13227
第14章概率算法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
习题14241
第15章群智能算法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
展开全部
算法设计与分析(第3版) 作者简介
王红梅,女,53岁,三级教授,硕士生导师,省级教学名师,省级教学团队“算法与程序设计”带头人,从事计算机专业教学工作24年,国家级精品课“计算机学科概论”、国家级一流课程“数据结构”负责人,出版了《数据结构(C++版)》、《计算机学科概论》、《程序设计基础》、《算法设计与分析》等教材,均被评为“十二五”国家级规划教材,《数据结构(C++版)》推荐参评教育部首批优秀教材,获省级教学成果奖一等奖1项、二等奖2项、三等奖2项,发表学术论文20余篇。