机械工业出版社旗舰店店铺主页二维码
机械工业出版社旗舰店 微信认证
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版

39.90
运费: 免运费
算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版 商品图0
算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版 商品图1
算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版 商品缩略图0 算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版 商品缩略图1

商品详情

书名:算法设计与分析(*2版)
定价:59.0
ISBN:9787111657231
作者:黄宇
版次:2
出版时间:2020-06

内容提要:

  内容简介

本书是作者在多年从事算法设计与分析课程教学和研究的基础上编写而成,系统地介绍了算法设计与分析的理论、方法和技术。内容围绕两条主线来组织。一条主线是介绍典范性的算法问题,如排序、选择、图遍历等。 另一条主线是介绍典范性的算法设计分析策略,如分治、贪心、动态规划等算法设计策略和对手分析、平摊分析等算法分析策略。本书中两条主线交替进行,每条主线又各自分为基本和进阶两部分。





目录:

  目录

  前言
教学建议
*一部分计算模型
*1 章抽象的算法设计与分析........... 2
1.1 RAM 模型的引入................... 2
1.1.1 计算的基本概念................... 2
1.1.2 计算模型的基本概念. . . . . . . .. .. . . . . 3
1.1.3 RAM 模型........................ 3
1.1.4 计算模型的选择:易用性与*确性........................... 5
1.2 抽象算法设计...................... 6
1.2.1 算法问题规约..................... 6
1.2.2 算法正确性证明:数学归纳法....... 7
1.3 抽象算法分析...................... 8
1.3.1 抽象算法的性能指标. . . . . . . .. .. . . . . 8
1.3.2 *坏情况时间复杂度分析.......... 9
1.3.3 平均情况时间复杂度分析......... 10
1.4 习题. .. . . . . . . . .. .. .. .. . . . . . . . . . .. .. 11
*2 章从算法的视角重新审视数学的概念. . . . . . . . . . .. .. .. .. . . . . 14
2.1 数学运算背后的算法操作......... 14
2.1.1 取整. x . 和. x . . . . . . . . . . .. .. .. .. . 14
2.1.2 对数log n . . . . .. .. .. . . . . . . . . . .. .. . 14
2.1.3 阶乘n!. . . . .. .. .. .. . . . . . . . . . .. .. . 15
2.1.4 常用级数求和.f (i). . . . . . .. .. .. .. 16
2.1.5 期望E[X] ....................... 18
2.2 函数的渐近增长率................ 19
2.3 “分治递归”求解................. 21
2.3.1 替换法. .. .. . . . . . . . . . .. .. .. .. . . . . 21
2.3.2 分治递归与递归树.. . . . . . . . . . .. .. .21
2.3.3 Master 定理. .. .. .. . . . . . . . . . .. .. .. 22
2.4 习题. . . . . . . . .. .. .. . . . . . . . . . .. .. .. .. 23
*二部分从蛮力到分治
第3 章蛮力算法设计................... 31
3.1 蛮力选择与查找. . . . . . .. .. .. . . . . . . . 31
3.2 蛮力排序.. . . . . . .. .. .. .. . . . . . . . . . .. 32
3.2.1 选择排序. . . .. .. .. .. . . . . . . . . . .. .. 32
3.2.2 插入排序. . . .. .. .. .. . . . . . . . . . .. .. 33
3.3 习题. . . . . . . . .. .. .. . . . . . . . . . .. .. .. .. 35
第4 章分治排序.. .. .. .. . . . . . .. .. .. .. . . . 37
4.1 快速排序. . . . . . . .. .. .. .. . . . . . . . . . .. 37
4.1.1 插入排序的不足. .. .. . . . . . . . . . .. .. 37
4.1.2 快速排序的改进. .. .. . . . . . . . . . .. .. 38
4.1.3 *坏情况时间复杂度分析......... 39
4.1.4 基于递归方程的平均情况时间复杂度分析. . . . . . .. .. .. . . . . . . . . . . 40
4.1.5 基于指标随机变量的平均情况时间复杂度分析. . . . . . .. .. .. . . . . . . . . . . 41
4.2 合并排序.. . . . . . .. .. .. .. . . . . . . . . . .. 43
4.3 基于比较的排序的下界. .. .. .. . . . . . 44
4.3.1 决策树的引入. . . . . . .. .. .. . . . . . . . . 45
4.3.2 比较排序的*坏情况时间复杂度的下界. . . . . .. .. .. .. . . . . . . . .. .. .. 45
4.3.3 比较排序的平均情况时间复杂度的下界. . . . . .. .. .. .. . . . . . . . .. .. .. 46
4.4 习题. . . . . . . . .. .. .. . . . . . . . . . .. .. .. .. 48
第5 章线性时间选择................... 50
5.1 期望线性时间选择................ 50
5.1.1 选择算法设计. . . . . . .. .. .. . . . . . . . . 50
5.1.2 选择算法分析. . . . . . .. .. .. . . . . . . . . 51
5.2 *坏情况线性时间选择. .. .. .. . . . . . 52
5.2.1 选择算法设计. . . . . . .. .. .. . . . . . . . . 52
5.2.2 选择算法分析. .. . . . . . . . . . .. .. . . . . 53
5.3 习题. .. . . . . . . . .. .. .. .. . . . . . . . . . .. .. 54
第6 章对数时间查找................... 57
6.1 折半查找.. .. . . . . . . . .. .. .. .. . . . . . . . 57
6.1.1 经典折半查找. .. . . . . . . . .. .. .. . . . . 57
6.1.2 查找峰值. . . . . . . .. .. .. . . . . . . . . . .. 58
6.1.3 计算√N ........................ 59
6.2 平衡二叉搜索树. . . . . . . . .. .. .. . . . . . 59
6.2.1 二叉搜索树及其平衡性........... 59
6.2.2 红黑树的定义. .. . . . . . . . . . .. .. . . . . 60
6.2.3 红黑树的平衡性. .. .. .. .. . . . . . . . . . 62
6.3 习题. .. . . . . . . . .. .. .. .. . . . . . . . . . .. .. 62
第7 章分治算法设计要素. . . . . . . . . . .. .. .65
7.1 分治算法的关键特征. . . . . . . .. .. .. . 65
7.2 计算逆序对的个数................ 66
7.2.1 依托于合并排序的逆序对计数.. .. . 66
7.2.2 原地的逆序对计数.. .. . . . . . . . . . .. .67
7.3 整数乘法.. .. . . . . . . . .. .. .. .. . . . . . . . 68
7.3.1 简单分治. . . . . . . .. .. .. . . . . . . . . . .. 69
7.3.2 更精细的分治. .. . . . . . .. .. .. .. . . . . 69
7.4 芯片检测.. .. . . . . . . . .. .. .. .. . . . . . . . 70
7.5 习题. .. . . . . . . . .. .. .. .. . . . . . . . . . .. .. 71
第三部分从图遍历到图优化
第8 章图的深度优先遍历. . . . . . . . . . .. .. .76
8.1 图和图遍历. . . . . . . .. .. .. .. . . . . . . . . . 76
8.2 有向图上的深度优先遍历......... 77
8.2.1 遍历框架. . . . . . . .. .. .. . . . . . . . . . .. 77
8.2.2 深度优先遍历树. .. .. .. .. . . . . . . . . . 79
8.2.3 活动区间. . . . . . . .. .. .. . . . . . . . . . .. 79
8.3 有向图上深度优先遍历的应用.. .. .82
8.3.1 拓扑排序. . . . . . . .. .. .. . . . . . . . . . .. 82
8.3.2 关键路径. . . . . . . .. .. .. . . . . . . . . . .. 85
8.3.3 有向图中的强连通片............. 87
8.4 无向图上的深度优先遍历......... 91
8.4.1 无向图的深度优先遍历树......... 91
8.4.2 无向图的深度优先遍历框架....... 92
8.5 无向图上深度优先遍历的应用.. .. .93
8.5.1 容错连通. . . .. .. .. .. . . . . . . . . . .. .. 93
8.5.2 寻找割点. . . .. .. .. .. . . . . . . . . . .. .. 94
8.5.3 寻找桥. . . . . . . . . . .. .. .. .. . . . . . . . . 96
8.6 习题. . . . . . . . . . .. .. .. . . . . . . . .. .. .. .. 97
第9 章图的广度优先遍历............. 102
9.1 广度优先遍历. . . . . . . .. .. .. .. . . . . . 102
9.1.1 广度优先遍历框架.............. 103
9.1.2 有向图的广度优先遍历树. . . . . . . . 105
9.1.3 无向图的广度优先遍历树. . . . . . . . 106
9.2 广度优先遍历的应用. . . . .. .. .. . . . 107
9.2.1 判断二分图. .. . . . . . . . . . .. .. .. .. . 107
9.2.2 寻找k 度子图.. .. .. . . . . . . . .. .. .. 108
9.3 习题. . . . . . . . . .. .. .. . . . . . . . . . .. .. .. 109
*10 章图优化问题的贪心求解. . . . . . ..111
10.1 *小生成树问题与给定源点*短路径问题. . . . .. .. .. . . . . . . . . . 111
10.2 Prim 算法. .. . . . . . . . .. .. .. . . . . . . . .112
10.2.1 Prim 算法的正确性. .. . . . . . . . . . . 113
10.2.2 Prim 算法的实现. . . . . . .. .. .. . . . 116
10.2.3 Prim 算法的分析. . . . . . .. .. .. . . . 117
10.3 Kruskal 算法. . . . . . . . . .. .. .. .. . . . . 118
10.3.1 Kruskal 算法的正确性. . . . . . . . . . .119
10.3.2 Kruskal 算法的实现与分析...... 120
10.4 *小生成树贪心构建框架MCE. . . . . . . . . . .. .. .. . . . . . . . . . .. ..120
10.4.1 从MCE 框架的角度分析Prim 算法..................... 121
10.4.2 从MCE 框架的角度分析Kruskal 算法. .. . . . . . . . . . .. .. .. . 122
10.5 Dijkstra 算法. .. .. . . . . . . . . . .. .. .. . 123
10.5.1 Dijkstra 算法的设计.. . . . . . . . . . ..123
10.5.2 Dijkstra 算法的正确性证明与性能分析. .. . . . . . . . . . .. .. .. .. . . 125
10.6 贪心遍历框架BestFS. .. .. .. . . . . . 126
10.7 习题. . . . . . . . . .. .. . . . . . . . . . .. .. .. .128
*11 章贪心算法设计要素............ 134
11.1 贪心算法的基本结构. . .. .. .. .. . . 134
11.2 相容任务调度问题.............. 134
11.2.1 直觉的尝试. . . .. .. .. . . . . . . . . . .. 135
11.2.2 基于任务结束时间的贪心算法. . . 135
11.3 Hu.man 编码.. .. .. . . . . . . . .. .. .. . 136
11.3.1 可变长度编码.. . . . . . . . . . .. .. .. .136
11.3.2 *优编码方案的性质........... 137
11.3.3 贪心的Hu.man 编码........... 139
11.4 习题.. .. . . . . . . . .. .. .. . . . . . . . . . .. .139
*12 章图优化问题的动态规划求解. . . 142
12.1 有向无环图上的给定源点*短路径问题. . . . . . . . .. .. . . . . . . . 142
12.2 所有点对*短路径问题......... 143
12.2.1 传递闭包问题和Shortcut 算法... 143
12.2.2 所有点对*短路径:基于路径长度的递归........... 145
12.2.3 Floyd-Warshall 算法:基于中继节点范围的递归. . . . . . . 146
12.3 习题.. .. . . . . . . . . . .. .. . . . . . . . . . .. .147
*13 章动态规划算法设计要素. . . . . . . .150
13.1 动态规划的动机. . . . . . . .. .. .. . . . . 150
13.2 动态规划的引入. . . . . . . .. .. .. . . . . 151
13.2.1 基于朴素遍历的递归........... 152
13.2.2 未做规划的递归............... 152
13.2.3 采用动态规划的递归........... 153
13.3 动态规划的关键特征. . . . . . .. .. .. 155
13.4 动态规划应用举例.............. 156
13.4.1 编辑距离问题.. . . . . . . . . . .. .. .. .156
13.4.2 硬币兑换问题.. . . . . . . . . . .. .. .. .158
13.4.3 *大和连续子序列问题......... 159
13.4.4 相容任务调度问题............. 160
13.5 习题.. .. . . . . . .. .. .. .. . . . . . . . . . .. .161
第四部分围绕数据结构的算法设计
*14 章堆与偏序关系.. .. .. .. . . . . . . . . . 168
14.1 堆的定义. .. . . . . . . . .. .. .. .. . . . . . . 168
14.2 堆的抽象维护.. . . . . . . . . . .. .. .. . . 168
14.2.1 堆的修复. . . . . . . . .. .. .. .. . . . . . . 169
14.2.2 堆的构建. . . . .. .. .. .. . . . . . . . . . . 169
14.3 堆的具体实现. . . . . . . . . .. .. .. . . . . 171
14.4 堆的应用. . . . . . .. .. .. .. . . . . . . . . . . 172
14.4.1 堆排序.. .. .. . . . . . . . . . .. .. . . . .

机械工业出版社旗舰店店铺主页二维码
机械工业出版社旗舰店 微信公众号认证
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

算法设计与分析(*2版) 黄宇 9787111657231 高等学校计算机专业系列教材 机械工业出版社官方正版

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:cmp1952
机工书院官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏