高等学校计算机专业系列教材 算法设计与分析 第2版
作者:黄宇 编著
出版时间:2020年版
丛编项: 高等学校计算机专业系列教材
内容简介
本书是作者在多年从事算法设计与分析课程教学和研究的基础上编写而成,系统地介绍了算法设计与分析的理论、方法和技术。内容围绕两条主线来组织。一条主线是介绍典范性的算法问题,如排序、选择、图遍历等。 另一条主线是介绍典范性的算法设计分析策略,如分治、贪心、动态规划等算法设计策略和对手分析、平摊分析等算法分析策略。本书中两条主线交替进行,每条主线又各自分为基本和进阶两部分。
目录
前言
教学建议
第一部分计算模型
第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更精细的分治