目 录
第1章算法与数据结构
1.1编程的灵魂--数据结构+算法=程序
1.2基本算法
1.2.1枚举
1.2.2贪心法
1.2.3递归与分治法
1.2.4递推
1.3数据结构(1)--入门
1.3.1栈和队列
1.3.2串
1.3.3树和二叉树
1.3.4力瘃其基本算法
1.3.5排序与检索基本算法
1.4数据结构(2)--拓宽和应用举例
1.4.1并查集
1.4.2堆及其变种
1.4.3字典的两种实现方式:哈希表.二叉搜索树
1.4.4两个特殊树结构:线段树和Trie
1.5动态规划
1.5.1动态规划的两种动机
1.5.2常见模型的分析
1.5.3若干经典问题和常见优化方法
1.6状态空间搜索
1.6.1状态空间
1.6.2盲目搜索算法
1.6.3启发式搜索算法
1.6.4博弈问题算法
1.6.5剪枝
*1.6.6专题:路径寻找问题
*1.6.7约束满足问题
第2章数学方法与常见模型
2.1代数方法和模型
2.2数论基础
2.2.1素数和整除问题
2.2.2进位制
2.2.3同余模算术
2.3组合数学初步
2.3.1鸽笼原理和Ramsey定理
2.3.2排列组合和容斥原理
2.3.3群论与Polya定理
2.3.4递推关系与生成函数
2.3.5离散变换与反演
2.4图论基本知识和算法
2.4.1基本概念和定理
2.4.2可行遍性问题简介
2.4.3平面图
2.4.4图的基本算法与应用举例
2.5图论基本算法
2.5.1生成树问题
2.5.2最短路问题
2.5.3网络流问题
2.5.4二分图相关问题和模型
第3章计算机几何初步
3.1位置和方向的世界--计算机几何的基本问题
3.1.1从相交到左右--基本问题的转化
3.1.2左右和前后--叉积和点积
3.2多边形和多面体的相关问题
3.2.1卫兵问题--多边形和多面体的概念
3.2.2求多边形.多面体的容积和重心,高维情形
3.2.3判点在形内形外形上,多面体的情形
3.3打包裹与制造合金--凸包及其应用
3.3.1凸包的普遍性和广泛应用性,凸的定义与优美性质
3.3.2凸包的实现
3.3.3凸包算法正确性与时间效率
3.3.4应用举例
3.3.5凸多边形的深入讨论
3.4几种常用的特殊算法
3.4.1蛋糕被切成几块?--离散化法
3.4.2切蛋糕的周长和面积--扫除法
3.4.3凸包与快速排序--分治法
3.4.4凸包的又一种求法--增量法
3.4.5专题--随机增量算法
参考文献
^ 收 起