本书使用实际代码而非伪代码来描述算法,并以经验主导支撑数学分析,侧重于应用且规范严谨。本书提供了用多种程序设计语言实现的文档化的实际代码解决方案,还介绍了近40种核心算法,其中包括用于计算点集的Voronoi图的Fortune算法、归并排序、多线程快速排序、AVL平衡二叉树实现以及空间算法。
目录
- 前言
- 第1章用算法的眼光去看问题
- 1.1理解问题
- 1.2简单解法
- 1.3高明做法
- 1.4总结
- 1.5参考文献
- 第2章算法的数学原理
- 2.1问题样本的规模
- 2.2函数的增长率
- 2.3最好、最坏和平均情况下的性能分析
- 2.4性能指标
- 2.5基准测试
- 2.6参考文献
- 第3章算法基础
- 3.1算法模板的格式
- 3.2伪代码模板的格式
- 3.3实验评估的格式
- 3.4浮点计算
- 3.5算法举例
- 3.6常用方法
- 3.7参考文献
- 第4章排序算法
- 4.1概述
- 4.2移位排序
- 4.3选择排序
- 4.4堆排序
- 4.5基于分区的排序算法
- 4.6不基于比较的排序算法
- 4.7桶排序
- 4.8使用额外存储空间的排序算法
- 4.9字符串基准测试结果
- 4.10分析技术
- 4.11参考文献
- 第5章搜索算法
- 5.1顺序搜索
- 5.2二分搜索
- 5.3散列搜索
- 5.4布隆过滤器
- 5.5 -叉搜索树
- 5.6参考文献
- 第6章图算法
- 6.1图
- 6.2深度优先搜索
- 613广度优先搜索
- 6.4单源顶点最短路径
- 6.5针对稠密图的Dijkstra算法
- 6.6比较单源顶点最短路径的各种方案
- 6.7所有点对最短路径
- 6.8最小生成树算法
- 6.9关于图的最后一些想法
- 6.10参考文献
- 第7章AI寻路
- 7.1博弈树
- 7.2寻路算法的概念
- 7.3 Minimax......
- 7.4 NegMax
- 7.5 AlphaBeta
- 7.6搜索树
- 7.7深度优先搜索
- 7.8广度优先搜索
- 7.9 A*搜索
- 7.10比较搜索树算法
- 7.11参考文献
- 第8章网络流算法
- 8.1网络流
- 8.2最大流
- 8.3二分图匹配
- 8.4对于增广路径的深入思考
- 8.5最小费用流
- 8.6转运问题
- 8.7运输问题
- 8.8任务分配问题
- 8.9线性规划
- 8.10参考文献
- 第9章计算几何
- 9.1问题类型
- 9.2凸包
- 9.3凸包扫描
- 9.4计算线段交点
- 9.5线段扫描
- 9.6 Voronoi图
- 9.7参考文献
- 第1 0章空间树结构
- 10.1最近邻查询
- 10.2范围查询
- 10.3交集查询
- 10.4空间树
- 10.5最近邻查询
- 10.6范围查询
- 10.7四叉树
- 10.8 R树
- 10.9参考文献
- 第1 1章新兴算法
- 11.1特定情形下的衍生算法
- 11.2近似算法
- 11.3并行算法
- 11.4概率算法
- 11.5参考文献
- 第1 2章尾声:算法原理
- 12.1了解数据
- 12.2将问题分解成更小的问题
- 12.3选择正确的数据结构
- 12.4空间换时间
- 12.5构造一个搜索
- 12.6将问题归约为另一个问题
- 12.7编写算法难,测试算法更难
- 12.8在可能的情况下接受近似解
- 12.9增加并行化以提升性能
- 附录A基准测试