图书介绍
数据结构与算法分析2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)马克·艾伦·维斯(Mark Allen Weiss)著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111621959
- 出版时间:2019
- 标注页数:400页
- 文件大小:135MB
- 文件页数:414页
- 主题词:数据结构-研究生-教材;算法分析-研究生-教材;C语言-程序设计-研究生-教材
PDF下载
下载说明
数据结构与算法分析PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 引论1
1.1 本书讨论的内容2
1.2 数学知识复习3
1.2.1 指数3
1.2.2 对数3
1.2.3 级数4
1.2.4 模运算5
1.2.5 证明方法5
1.3 递归简论7
总结10
练习10
参考文献11
第2章 算法分析13
2.1 数学基础14
2.2 模型16
2.3 要分析的问题16
2.4 运行时间计算18
2.4.1 一个简单的例子18
2.4.2 一般法则19
2.4.3 最大子序列和20
2.4.4 运行时间中的对数24
2.4.5 检验你的分析27
2.4.6 分析结果的准确性28
总结28
练习29
参考文献32
第3章 表、栈和队列35
3.1 抽象数据类型36
3.2 表ADT36
3.2.1 表的简单数组实现37
3.2.2 链表37
3.2.3 程序设计细节38
3.2.4 常见的错误42
3.2.5 双链表43
3.2.6 循环链表43
3.2.7 例子43
3.2.8 链表的游标实现47
3.3 栈ADT50
3.3.1 栈模型50
3.3.2 栈的实现51
3.3.3 应用56
3.4 队列ADT62
3.4.1 队列模型62
3.4.2 队列的数组实现62
3.4.3 队列的应用65
总结66
练习66
第4章 树71
4.1 预备知识72
4.1.1 树的实现73
4.1.2 树的遍历及应用74
4.2 二叉树76
4.2.1 实现77
4.2.2 表达式树77
4.3 查找树ADT——二叉查找树80
4.3.1 MakeEmpty80
4.3.2 Find81
4.3.3 FindMin和FindMax81
4.3. 4 Insert81
4.3.5 Delete83
4.3.6 平均情形分析84
4.4 AVL树86
4.4.1 单旋转88
4.4.2 双旋转90
4.5 伸展树95
4.5.1 一个简单的想法96
4.5.2 展开97
4.6 树的遍历102
4.7 B树103
总结107
练习108
参考文献113
第5章 散列117
5.1 一般想法118
5.2 散列函数118
5.3 分离链接法120
5.4 开放定址法123
5.4.1 线性探测法124
5.4.2 平方探测法125
5.4.3 双散列129
5.5 再散列130
5.6 可扩散列132
总结133
练习134
参考文献137
第6章 优先队列(堆)139
6.1 模型140
6.2 一些简单的实现141
6.3 二叉堆141
6.3.1 结构性质141
6.3.2 堆序性质142
6.3.3 基本的堆操作143
6.3.4 其他的堆操作146
6.4 优先队列的应用149
6.4.1 选择问题149
6.4.2 事件模拟150
6.5 d-堆151
6.6 左式堆152
6.6.1 左式堆的性质152
6.6.2 左式堆的操作153
6.7 斜堆158
6.8 二项队列159
6.8.1 二项队列结构159
6.8.2 二项队列操作160
6.8.3 二项队列的实现162
总结165
练习166
参考文献169
第7章 排序173
7.1 预备知识174
7.2 插入排序174
7.2.1 算法174
7.2.2 插入排序的分析175
7.3 一些简单排序算法的下界175
7.4 希尔排序176
7.5 堆排序179
7.6 归并排序182
7.7 快速排序186
7.7.1 选取枢纽元187
7.7.2 分割策略188
7.7.3 小数组190
7.7.4 实际的快速排序例程190
7.7.5 快速排序的分析192
7.7.6 选择的线性期望时间算法194
7.8 大型结构的排序195
7.9 排序的一般下界196
7.10 桶式排序198
7.11 外部排序198
7.11.1 为什么需要新的算法198
7.11.2 外部排序模型199
7.11.3 简单算法199
7.11.4 多路合并200
7.11.5 多相合并201
7.11.6 替换选择202
总结203
练习204
参考文献207
第8章 不相交集ADT209
8.1 等价关系210
8.2 动态等价性问题210
8.3 基本数据结构212
8.4 灵巧求并算法214
8.5 路径压缩216
8.6 按秩求并和路径压缩的最坏情形217
8.7 一个应用221
总结222
练习222
参考文献223
第9章 图论算法225
9.1 若干定义226
9.2 拓扑排序228
9.3 最短路径算法230
9.3.1 无权最短路径232
9.3.2 Dijkstra算法235
9.3.3 具有负边值的图240
9.3.4 无圈图241
9.3.5 所有点对最短路径243
9.4 网络流问题243
9.5 最小生成树247
9.5.1 Prim算法248
9.5.2 Kruskal算法250
9.6 深度优先搜索的应用251
9.6.1 无向图252
9.6.2 双连通性253
9.6.3 欧拉回路256
9.6.4 有向图259
9.6.5 查找强分支260
9.7 NP-完全性介绍262
9.7.1 难与易262
9.7.2 NP类263
9.7.3 NP-完全问题264
总结266
练习266
参考文献270
第10章 算法设计技巧273
10.1 贪婪算法274
10.1.1 一个简单的调度问题274
10.1.2 Huffman编码276
10.1.3 近似装箱问题280
10.2 分治算法286
10.2.1 分治算法的运行时间287
10.2.2 最近点问题289
10.2.3 选择问题291
10.2.4 一些运算问题的理论改进294
10.3 动态规划297
10.3.1 用一个表代替递归298
10.3.2 矩阵乘法的顺序安排300
10.3.3 最优二叉查找树301
10.3.4 所有点对最短路径304
10.4 随机化算法306
10.4.1 随机数发生器307
10.4.2 跳跃表310
10.4.3 素性测试312
10.5 回溯算法314
10.5.1 收费公路重建问题314
10.5.2 博弈318
总结323
练习323
参考文献329
第11章 摊还分析333
11.1 一个无关的智力问题334
11.2 二项队列335
11.3 斜堆339
11.4 斐波那契堆341
11.4.1 切除左式堆中的节点341
11.4.2 二项队列的懒惰合并343
11.4.3 斐波那契堆操作346
11.4.4 时间界的证明346
11.5 伸展树348
总结351
练习351
参考文献353
第12章 高级数据结构及其实现355
12.1 自顶向下伸展树356
12.2 红黑树361
12.2.1 自底向上插入362
12.2.2 自顶向下红黑树363
12.2.3 自顶向下删除367
12.3 确定性跳跃表368
12.4 AA树373
12.5 treap树378
12.6 k-d树379
12.7 配对堆383
总结387
练习387
参考文献389
索引391