书籍详情
算法设计与分析 第2版
作者:黄宇 著
出版社:机械工业出版社
出版时间:2020-07-01
ISBN:9787111657231
定价:¥59.00
购买这本书可以去
内容简介
本书是作者在多年从事算法设计与分析课程教学和研究的基础上编写而成,系统地介绍了算法设计与分析的理论、方法和技术。内容围绕两条主线来组织。一条主线是介绍典范性的算法问题,如排序、选择、图遍历等。 另一条主线是介绍典范性的算法设计分析策略,如分治、贪心、动态规划等算法设计策略和对手分析、平摊分析等算法分析策略。本书中两条主线交替进行,每条主线又各自分为基本和进阶两部分。
作者简介
黄宇,南京大学计算机科学与技术系教授,博士生导师,主要研究方向为分布式算法、分布式系统和软件方法学。曾主持两项国家自然科学基金项目,并作为主要成员参与了国家973计划、国家自然科学基金创新群体项目等多项国家重大科研项目。2014年获得南京大学登峰人才支持计划资助,2011年获教育部技术发明奖。所指导的博士论文荣获2016年中国计算机学会博士学位论文奖。已在IEEE Trans on Computers、IEEE Trans on Parallel and Distributed Systems、IEEE PerCom等重要国际期刊及会议上发表多篇论文。
目录
前言
教学建议
第一部分计算模型
第1 章抽象的算法设计与分析 2
11 RAM 模型的引入 2
111 计算的基本概念 2
112计算模型的基本概念 3
113RAM 模型 3
114计算模型的选择:易用性与精确性 5
12 抽象算法设计 6
121 算法问题规约 6
122 算法正确性证明:数学归纳法 7
13 抽象算法分析 8
131 抽象算法的性能指标 8
132 最坏情况时间复杂度分析 9
133 平均情况时间复杂度分析 10
14 习题 11
第2 章从算法的视角重新审视数学的概念 14
21 数学运算背后的算法操作 14
211 取整 x 和 x 14
212 对数log n 14
213 阶乘n! 15
214 常用级数求和f (i) 16
215 期望E[X] 18
22 函数的渐近增长率 19
23 “分治递归”求解 21
231 替换法 21
232 分治递归与递归树 21
233 Master 定理 22
24 习题 23
第二部分从蛮力到分治
第3 章蛮力算法设计 31
31 蛮力选择与查找 31
32 蛮力排序 32
321选择排序 32
322插入排序 33
33 习题 35
第4 章分治排序 37
41 快速排序 37
411插入排序的不足 37
412快速排序的改进 38
413最坏情况时间复杂度分析 39
414基于递归方程的平均情况时间复杂度分析 40
415基于指标随机变量的平均情况时间复杂度分析 41
42 合并排序 43
43 基于比较的排序的下界 44
431决策树的引入 45
432比较排序的最坏情况时间复杂度的下界 45
433比较排序的平均情况时间复杂度的下界 46
44 习题 48
第5 章线性时间选择 50
51 期望线性时间选择 50
511选择算法设计 50
512选择算法分析 51
52 最坏情况线性时间选择 52
521选择算法设计 52
522选择算法分析 53
53 习题 54
第6 章对数时间查找 57
61 折半查找 57
611经典折半查找 57
612查找峰值 58
613计算√N 59
62 平衡二叉搜索树 59
621二叉搜索树及其平衡性 59
622红黑树的定义 60
623红黑树的平衡性 62
63 习题 62
第7 章分治算法设计要素 65
71 分治算法的关键特征 65
72 计算逆序对的个数 66
721依托于合并排序的逆序对计数 66
722原地的逆序对计数 67
73 整数乘法 68
731简单分治 69
732更精细的分治
教学建议
第一部分计算模型
第1 章抽象的算法设计与分析 2
11 RAM 模型的引入 2
111 计算的基本概念 2
112计算模型的基本概念 3
113RAM 模型 3
114计算模型的选择:易用性与精确性 5
12 抽象算法设计 6
121 算法问题规约 6
122 算法正确性证明:数学归纳法 7
13 抽象算法分析 8
131 抽象算法的性能指标 8
132 最坏情况时间复杂度分析 9
133 平均情况时间复杂度分析 10
14 习题 11
第2 章从算法的视角重新审视数学的概念 14
21 数学运算背后的算法操作 14
211 取整 x 和 x 14
212 对数log n 14
213 阶乘n! 15
214 常用级数求和f (i) 16
215 期望E[X] 18
22 函数的渐近增长率 19
23 “分治递归”求解 21
231 替换法 21
232 分治递归与递归树 21
233 Master 定理 22
24 习题 23
第二部分从蛮力到分治
第3 章蛮力算法设计 31
31 蛮力选择与查找 31
32 蛮力排序 32
321选择排序 32
322插入排序 33
33 习题 35
第4 章分治排序 37
41 快速排序 37
411插入排序的不足 37
412快速排序的改进 38
413最坏情况时间复杂度分析 39
414基于递归方程的平均情况时间复杂度分析 40
415基于指标随机变量的平均情况时间复杂度分析 41
42 合并排序 43
43 基于比较的排序的下界 44
431决策树的引入 45
432比较排序的最坏情况时间复杂度的下界 45
433比较排序的平均情况时间复杂度的下界 46
44 习题 48
第5 章线性时间选择 50
51 期望线性时间选择 50
511选择算法设计 50
512选择算法分析 51
52 最坏情况线性时间选择 52
521选择算法设计 52
522选择算法分析 53
53 习题 54
第6 章对数时间查找 57
61 折半查找 57
611经典折半查找 57
612查找峰值 58
613计算√N 59
62 平衡二叉搜索树 59
621二叉搜索树及其平衡性 59
622红黑树的定义 60
623红黑树的平衡性 62
63 习题 62
第7 章分治算法设计要素 65
71 分治算法的关键特征 65
72 计算逆序对的个数 66
721依托于合并排序的逆序对计数 66
722原地的逆序对计数 67
73 整数乘法 68
731简单分治 69
732更精细的分治
猜您喜欢