热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

算法详解 卷2 图算法和数据结构

编号:
wx1202073415
销售价:
¥42.14
(市场价: ¥49.00)
赠送积分:
42
数量:
   
商品介绍

算法是计算机科学的核心与灵魂。算法的应用范围极广,网络路由、计算基因组学、公钥加密学和数据库系统等的实现都需要算法。研究算法可以帮助我们成为更很好的程序员,可以让我们具有更缜密的思维,并成功应对各种场合的技术面试。
这是一本很好容易上手的算法入门图书,它可作为程序员的学习用书,也适合想要学习算法和想提升算法思维能力的读者阅读。
本书主要包括以下内容:
图的搜索和应用;
散列表;
很短路径算法;
布隆过滤器;
随机化算法;
堆;
搜索树。

算法详解系列图书共有4卷,本书是第2卷—图算法和数据结构。本书共有6章,主要介绍了3个主题,分别是图的搜索和应用、很短路径以及数据结构。附录简单回顾了渐进性表示法。本书的每一章均有小测验、章末习题,这为读者的自我检查以及进一步学习提供了方便。
本书提供了丰富而实用的资料,能够帮助读者提升算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及正在准备面试的应聘者和面试官阅读参考。

蒂姆·拉夫加登(Tim Roughgarden)是斯坦福大学计算机科学系的教授,也是该校管理科学和工程系的客座教授,他从2004年开始教授和研究算法。本书是他的《算法详解》四部曲的卷,基于他从2012年开始定期举行的在线算法课程编写。

章 图的基础知识 1
1.1  基本术语  1
1.2  图的一些应用  2
1.3  图形的度量  3
1.3.1  图的边数量  3
1.3.2  稀疏图和稠密图  4
1.3.3  小测验1.1的答案  5
1.4  图的表示方法  7
1.4.1  邻接列表  7
1.4.2  邻接矩阵  8
1.4.3  图的表示形式之间的比较  9
1.4.4  小测验1.2和小测验1.3的答案  10
1.5  本章要点  11
1.6  章末习题  12
第2章  图的搜索及其应用  14
2.1  概述  14
2.1.1  一些应用  15
2.1.2  零代价的基本算法  16
2.1.3  通用的图搜索算法  17
2.1.4  宽度优先的搜索和深度优先的搜索  20
2.1.5  GenericSearch算法的正确性  22
2.2  宽度优先的搜索和最短路径  23
2.2.1  高层思路  23
2.2.2  BFS的伪码  24
2.2.3  BFS的一个例子  25
2.2.4  正确性和运行时间  27
2.2.5  最短路径  28
2.2.6  小测验2.1的答案  31
2.3  计算连通分量  32
2.3.1  连通分量  32
2.3.2  连通分量的应用  33
2.3.3  UCC(无向图连通分量)算法  34
2.3.4  UCC算法的一个例子  35
2.3.5  UCC算法的正确性和运行时间  36
2.3.6  小测验2.2的答案  37
2.4  深度优先的搜索  37
2.4.1  DFS的一个例子  37
2.4.2  DFS的伪码  39
2.4.3  正确性和运行时间  41
2.5  拓扑排序  41
2.5.1  拓扑顺序  41
2.5.2  什么时候存在拓扑顺序  43
2.5.3  计算拓扑顺序  45
2.5.4  通过DFS的拓扑排序  46
2.5.5  拓扑排序的一个例子  47
2.5.6  正确性和运行时间  48
2.5.7  小测验2.3和小测验2.4的答案  49
*2.6  计算强连通分量  50
2.6.1  强连通分量的定义  50
2.6.2  为什么要使用深度优先的搜索  52
2.6.3  为什么要使用反转的图  53
2.6.4  Kosaraju的伪码  57
2.6.5  一个例子  59
2.6.6  正确性和运行时间  60
2.6.7  小测验2.5和小测验2.6的答案  60
2.7  Web的结构  61
2.7.1  Web图  62
2.7.2  蝴蝶结  63
2.7.3  主要发现  64
2.8  本章要点  65
2.9  章末习题  65
第3章  Dijkstra最短路径算法  70
3.1  单源最短路径问题  70
3.1.1  问题定义  70
3.1.2  一些前提条件  72
3.1.3  为什么不使用宽度优先的搜索  72
3.1.4  小测验3.1的答案  73
3.2  Dijkstra算法  74
3.2.1  伪码  74
3.2.2  一个例子  76
*3.3  为什么Dijkstra算法是正确的  77
3.3.1  一种虚假的简化  77
3.3.2  Dijkstra算法的一个糟糕例子  78
3.3.3  非负边长时的正确性  78
3.4  算法的实现及其运行时间  82
3.5  本章要点  84
3.6  章末习题  84
第4章  堆数据结构  88
4.1  数据结构概述  88
4.1.1  选择正确的数据结构  88
4.1.2  进入更高层次  89
4.2  堆所支持的操作  90
4.2.1  Insert和ExtractMin  91
4.2.2  其他操作  92
4.3  堆的应用  93
4.3.1  应用:排序  93
4.3.2  应用:事件管理器  96
4.3.3  应用:中位值维护  96
4.4  Dijkstra算法的提速  98
4.4.1  为什么要使用堆  98
4.4.2  计划  99
4.4.3  维持不变性  101
4.4.4  运行时间  103
*4.5  实现细节  104
4.5.1  树形式的堆  104
4.5.2  数组形式的堆  106
4.5.3  在O (log n)时间内实现Insert操作  107
4.5.4  在O (log n)时间内实现ExtractMin操作  111
4.6  本章要点  114
4.7  章末习题  114
第5章  搜索树  117
5.1  有序数组  117
5.1.1  有序数组支持的操作  117
5.1.2  有序数组不支持的操作  119
5.2  搜索树支持的操作  120
*5.3  实现细节  122
5.3.1  搜索树的属性  122
5.3.2  搜索树的高度  123
5.3.3  在O(高度)时间内实现Search  124
5.3.4  在O(高度)时间内实现Min和Max  125
5.3.5  在O(高度)时间内实现Predecessor  126
5.3.6  在O(n)时间内实现OutputSorted操作  127
5.3.7  在O(高度)时间内实现Insert操作  128
5.3.8  在O(高度)时间内实现Delete操作  129
5.3.9  强化的搜索树支持Select操作  132
5.3.10  小测验5.1的答案  134
*5.4  平衡搜索树  134
5.4.1  努力实现更好的平衡  134
5.4.2  旋转  135
5.5  本章要点  137
5.6  章末习题  138
第6章  散列表和布隆过滤器  140
6.1  支持的操作  140
6.2  散列表的应用  143
6.2.1  应用:消除重复  144
6.2.2  应用:两数之和问题  145
6.2.3  应用:搜索巨大的状态空间  147
6.2.4  小测验6.2的答案  148
*6.3  实现的高层思路  148
6.3.1  两个简单的解决方案  148
6.3.2  散列函数  149
6.3.3  冲突是不可避免的  150
6.3.4  解决冲突的方法:链地址法  152
6.3.5  解决冲突的方法:开放地址法  153
6.3.6  良好的散列函数是怎么样的  156
6.3.7  小测验6.3至小测验6.5的答案  160
*6.4  更多的实现细节  162
6.4.1  负载和性能  162
6.4.2  管理散列表的负载  164
6.4.3  选择散列函数  165
6.4.4  选择冲突解决策略  166
6.4.5  小测验6.6的答案  166
6.5  布隆过滤器的基础知识  166
6.5.1  布隆过滤器支持的操作  167
6.5.2  布隆过滤器的应用  169
6.5.3  布隆过滤器的实现  169
*6.6  布隆过滤器的启发式分析  172
6.6.1  启发式假设  172
6.6.2  部分位被设置为1  174
6.6.3  假阳性率  175
6.6.4  结束语  176
6.6.5  小测验6.7的答案  177
6.7  本章要点  178
6.8  章末习题  179
附录  快速回顾渐进性表示法  181
部分习题答案  187

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115526038
条码 9787115526038
编者 [美]蒂姆·拉夫加登(Tim Roughgarden)
译者 徐波
出版年月 2020-06-01 00:00:00.0
开本 16开
装帧 平装
页数 188
字数 190
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]