《算法技术手册 原书第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)乔治·T·海涅曼(George T.Heineman),加里·波利切(Gary Pollice)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111562221
  • 页数:342 页
图书介绍:本书使用实际代码而非伪代码来描述算法,并以经验主导支撑数学分析,侧重于应用且规范严谨。本书提供了用多种程序设计语言实现的文档化的实际代码解决方案,还介绍了近40种核心算法,其中包括用于计算点集的Voronoi图的Fortune算法、归并排序、多线程快速排序、AVL平衡二叉树实现以及空间算法。

前言 1

第1章 用算法的眼光去看问题 7

1.1 理解问题 7

1.2 简单解法 8

1.3 高明做法 9

1.4 总结 13

1.5 参考文献 13

第2章 算法的数学原理 14

2.1 问题样本的规模 14

2.2 函数的增长率 15

2.3 最好、最坏和平均情况下的性能分析 18

2.4 性能指标 23

2.5 基准测试 34

2.6 参考文献 36

第3章 算法基础 37

3.1 算法模板的格式 37

3.2 伪代码模板的格式 38

3.3 实验评估的格式 39

3.4 浮点计算 39

3.5 算法举例 43

3.6 常用方法 47

3.7 参考文献 53

第4章 排序算法 54

4.1 概述 54

4.2 移位排序 58

4.3 选择排序 61

4.4 堆排序 62

4.5 基于分区的排序算法 68

4.6 不基于比较的排序算法 74

4.7 桶排序 74

4.8 使用额外存储空间的排序算法 80

4.9 字符串基准测试结果 84

4.10 分析技术 86

4.11 参考文献 88

第5章 搜索算法 89

5.1 顺序搜索 90

5.2 二分搜索 93

5.3 散列搜索 97

5.4 布隆过滤器 111

5.5 二叉搜索树 114

5.6 参考文献 126

第6章 图算法 127

6.1 图 127

6.2 深度优先搜索 131

6.3 广度优先搜索 136

6.4 单源顶点最短路径 140

6.5 针对稠密图的Diikstra算法 145

6.6 比较单源顶点最短路径的各种方案 149

6.7 所有点对最短路径 151

6.8 最小生成树算法 155

6.9 关于图的最后一些想法 159

6.10 参考文献 160

第7章 AI寻路 161

7.1 博弈树 161

7.2 寻路算法的概念 165

7.3 Minimax 166

7.4 NegMax 171

7.5 AlphaBeta 174

7.6 搜索树 180

7.7 深度优先搜索 183

7.8 广度优先搜索 188

7.9 A*搜索 191

7.10 比较搜索树算法 201

7.11 参考文献 203

第8章 网络流算法 206

8.1 网络流 208

8.2 最大流 209

8.3 二分图匹配 219

8.4 对于增广路径的深入思考 222

8.5 最小费用流 226

8.6 转运问题 227

8.7 运输问题 228

8.8 任务分配问题 228

8.9 线性规划 230

8.10 参考文献 231

第9章 计算几何 232

9.1 问题类型 232

9.2 凸包 236

9.3 凸包扫描 237

9.4 计算线段交点 244

9.5 线段扫描 244

9.6 Voronoi图 253

9.7 参考文献 265

第10章 空间树结构 266

10.1 最近邻查询 267

10.2 范围查询 268

10.3 交集查询 268

10.4 空间树 268

10.5 最近邻查询 271

10.6 范围查询 281

10.7 四叉树 287

10.8 R树 292

10.9 参考文献 303

第11章 新兴算法 304

11.1 特定情形下的衍生算法 304

11.2 近似算法 304

11.3 并行算法 310

11.4 概率算法 314

11.5 参考文献 321

第12章 尾声:算法原理 322

12.1 了解数据 322

12.2 将问题分解成更小的问题 323

12.3 选择正确的数据结构 324

12.4 空间换时间 325

12.5 构造一个搜索 326

12.6 将问题归约为另一个问题 326

12.7 编写算法难,测试算法更难 327

12.8 在可能的情况下接受近似解 328

12.9 增加并行化以提升性能 328

附录A 基准测试 331