算法分析的数学基础 & 大纲 计算复杂型函数的阶 和式估计与界限(多证明略) 递归方程

1.渐进效率:保留高阶项(增长的阶),忽略掉低阶项和常数项

2.典型增长阶:

Θ(1),Θ(lg n),Θ(n½),Θ(n),Θ(nlg n),Θ(n²),Θ(n³),Θ(2^n),Θ(n!)

3.增长记号:Ο(渐进上界:最坏情况)、Θ(渐进紧界)、Ω(渐进下界:最好情况)、

      ο(不紧上界)、ω(不紧下界)

4.增长函数:

  同阶函数:f(n)=Θ(g(n))  c1g(n)<=f(n)<=c2g(n)  c1,c2>0

  低阶函数:f(n)=Ο(g(n))  0 <= f(n) <= cg(n)  c>0 f(n)为低阶项

严格低阶函数:f(n)=ο(g(n))  0 <= f(n) < cg(n)   c>0 f(n)为低阶项

  高阶函数:f(n)=Ω(g(n))  0 <= cg(n) <= f(n)  c>0 f(n)为高阶项

严格高阶函数:f(n)=ω(g(n))  0 <= cg(n) < f(n)    c>0 f(n)为高阶项算法分析的数学基础 & 大纲
计算复杂型函数的阶
和式估计与界限(多证明略)
递归方程

和式估计与界限(多证明略)

1.线性和

2.级数

3.和的界限

递归方程

1.替换方法:先猜想,再用数学归纳法证明

2.迭代方法:把方程转化为一个和式,估计和

3.Master定理法:求解型为 T(n)=aT(n/b)+f(n) 的递归方程

算法分析的数学基础 & 大纲
计算复杂型函数的阶
和式估计与界限(多证明略)
递归方程

算法分析的数学基础 & 大纲
计算复杂型函数的阶
和式估计与界限(多证明略)
递归方程

1:数学

1.1:数论

1.1.1:中国剩余定理
1.1.2:欧拉函数
1.1.3:欧几里得定理
1.1.3.1:欧几里得定理
1.1.3.2:扩展欧几里得
1.1.4:大数分解与素数判定
1.1.5:佩尔方程

1.2:组合数学

1.2.1:排列组合
1.2.2:容斥原理
1.2.3:递推关系和生成函数
1.2.4:Polya计数法
1.2.4.1:Polya计数公式
1.2.4.2:Burnside定理

1.3:计算方法

1.3.1:二分法
1.3.1.1:用矩阵加速的计算
1.3.2:迭代法
1.3.3:三分法
1.3.4:解线性方程组
1.3.4.1:LUP分解
1.3.4.2:高斯消元
1.3.5:解模线性方程组
1.3.6:定积分计算
1.3.7:多项式求根
1.3.8:周期性方程
1.3.9:线性规划
1.3.10:快速傅立叶变换
1.3.11:随机算法

1.4:构造方法

1.4.1:N皇后构造解
1.4.2:幻方的构造
1.4.3:满足一定条件的hamilton圈的构造

1.5:特殊的数

1.5.1:Catalan数
1.5.2:Stirling数
1.5.3:斐波拉契数
1.5.4:调和数
1.5.4:连分数

2:数据结构

2.1:栈,队列,链表
2.2:哈希表
2.3:堆,优先队列
2.3.1:左偏树
2.4:二叉查找树
2.4.1:Treap
2.4.2:伸展树
2.5:并查集
2.6:平衡二叉树
2.7:线段树
2.7.1:一维线段树
2.7.2:二维线段树
2.8:树状数组
2.8.1:一维树状数组
2.8.2:N维树状数组
2.9:字典树
2.10:后缀数组
2.11:块状链表

3:图论

3.1:图

3.1.1.:广度优先遍历
3.1.2.:深度优先遍历
3.1.3.:拓扑排序
3.1.4.:割边割点
3.1.5.:强连通分量
3.1.5:2-SAT问题
3.1.6.:欧拉回路
3.1.7.:哈密顿回路

3.2.:最小生成树

3.2.1.:Prim算法
3.2.2.:Kruskal算法
3.2.3.:Sollin算法
3.2.4.:次小生成树
3.2.5.:第k小生成树
3.2.6.:最优比例生成树
3.2.7.:最小树形图
3.2.8.:最小度限制生成树
3.2.9.:平面点的欧几里德最小生成树
3.2.10.:平面点的曼哈顿最小生成树
3.2.11.:最小平衡生成树

3.3.:最短路径

3.3.1.:有向无环图的最短路径->拓扑排序
3.3.2.:非负权值加权图的最短路径->Dijkstra算法
3.3.3.:含负权值加权图的最短路径->Bellmanford算法
3.3.4.:含负权值加权图的最短路径->Spfa算法
3.3.5.:全源最短路弗洛伊德算法Floyd
3.3.6.:全源最短路Johnson算法
3.3.7.:次短路径
3.3.8.:第k短路径
3.3.9.:差分约束系统
3.3.10.:平面点对的最短路径(优化)
3.3.11.:双标准限制最短路径

3.4.:最大流

3.4.1.:增广路->Ford-Fulkerson算法
3.4.2.:预推流
3.4.3.:Dinic算法
3.4.4.:有上下界限制的最大流
3.4.5.:节点有限制的网络流
3.4.6.:无向图最小割->Stoer-Wagner算法
3.4.7.:有向图和无向图的边不交路径
3.4.8.:Ford-Fulkerson迭加算法
3.4.9.:含负费用的最小费用最大流

3.5.:匹配

3.5.1.:Hungary算法
3.5.2.:最小点覆盖
3.5.3.:最小路径覆盖
3.5.4.:最大独立集问题
3.5.5.:二分图最优完备匹配Kuhn-Munkras算法
3.5.6.:一般图的最大基数匹配
3.5.7.:一般图的赋权匹配问题

5:计算几何:

5.1基本公式

5.1.1:叉乘
5.1.2:点乘
5.1.3:常见形状的面积、周长、体积公式

5.2:线段

5.2.1:判断两线段(一直线、一线段)是否相交
5.2.2:求两线段的交点

5.3:多边形

5.3.1:判定凸多边形,顶点按顺时针或逆时针给出,(不)允许相邻边共线
5.3.2:判点在凸多边形内或多边形边上,顶点按顺时针或逆时针给出
5.3.3:判点在凸多边形内,顶点按顺时针或逆时针给出,在多边形边上返回0
5.3.4:判点在任意多边形内,顶点按顺时针或逆时针给出
5.3.5:判线段在任意多边形内,顶点按顺时针或逆时针给出,与边界相交返回1
5.3.6:多边形重心
5.3.7:多边形切割(半平面交)

5.4:三角形

5.4.1:内心
5.4.2:外心
5.4.3:重心
5.4.4:垂心
5.4.5:费马点

5.5:圆

5.5.1:判直线和圆相交,包括相切
5.5.2:判线段和圆相交,包括端点和相切
5.5.3:判圆和圆相交,包括相切
5.5.4:计算圆上到点p最近点,如p与圆心重合,返回p本身
5.5.5:计算直线与圆的交点,保证直线与圆有交点
5.5.6:计算线段与圆的交点可用这个函数后判点是否在线段上
5.5.7:计算圆与圆的交点,保证圆与圆有交点,圆心不重合
5.5.8:计算两圆的内外公切线
5.5.9:计算线段到圆的切点

5.6:经典问题

5.6.1:平面凸包
5.6.2:三维凸包
5.6.3:Delaunay剖分/Voronoi图