目录
第1章 基础算法
1.1 分治
1.2 递归
1.3 枚举
1.4 贪心
第2章 排序、查找算法
2.1 基本排序算法
2.1.1 插入排序
2.1.2 冒泡排序
2.1.3 快速排序
2.1.4 其他排序
2.2 基本查找算法
2.2.1 顺序查找
2.2.2 折半查找
2.3 实例分析
2.4 小结
第3章 数据结构基础
3.1 常用数据结构简介
3.1.1 线段树简介
3.1.2 并查集简介
3.1.3 树状数组简介
3.2 实例分析
第4章 字符串
4.1 字符串匹配
4.1.1 朴素的字符串匹配算法
4.1.2 KMP算法
4.1.3 其他匹配算法
4.2 实例分析
4.3 小结
第5章 搜索算法
5.1 基本搜索算法
5.1.1 递归与迭代
5.1.2 深度优先搜索与广度优先搜索
5.1.3 回溯
5.2 搜索算法的一些优化
5.2.1 剪枝函数
5.2.2 双向广度搜索
5.3 实例分析
5.4 小结
第6章 图论算法
6.1 *短路径
6.1.1 Dijkstra算法
6.1.2 Floyd算法
6.1.3 Bellman-Ford算法
6.2 *小生成树
6.2.1 Kruskal算法
6.2.2 Prim算法
6.3 *大匹配--匈牙利算法
6.4 *优权匹配问题
6.4.1 理论基础
6.4.2 基本思想
6.4.3 样例代码
6.5 割点、割边以及连通分量
6.5.1 理论基础
6.5.2 求割点
6.5.3 求强连通分量
6.6 网络流
6.6.1 理论基础
6.6.2 *大流问题
6.6.3 *小费用*大流问题
6.7 实例分析
6.8 小结
第7章 动态规划算法
7.1 基本思想
7.2 基本概念
7.3 基本原理
7.3.1 *优化原理
7.3.2 无后效性
7.4 基本步骤
7.5 经典例子
7.6 实例分析
7.7 小结
第8章 计算几何基础
8.1 矢量
8.1.1 矢量的概念
8.1.2 矢量加减法
8.1.3 矢量叉积
8.1.4 矢量叉积的应用
8.2 包含关系
8.2.1 判断图形是否包含在矩形中
8.2.2 判断图形是否包含在多边形中
8.2.3 判断图形是否包含在圆中
8.3 凸包
8.3.1 凸包的概念
8.3.2 凸包的求法
8.4 实例分析
第9章 数论
9.1 基本数学算法
9.1.1 素数筛选
9.1.2 *大公约数
9.1.3 快速乘方
9.2 实例分析
附录A 综合训练题
A.1 LuckyBird
A.2 Josephus' problem
A.3 Counter Strike
A.4 Gauss Elimination
A.5 The Math Problem
A.6 Mobile phones
A.7 Japan
A.8 骨灰级玩家考证篇
A.9 括号匹配
A.10 食物链