排序
- 冒泡排序
- 选择排序
- 插入排序(二分插入)
- 希尔排序
- 堆排序
- 快速排序
- 归并排序(二路归并,多路归并,Timsort排序算法)
- 计数排序
- 桶排序
- 基数排序
- 拓扑排序
搜索
- Dfs
- Bfs
- 二分搜索
- 三分搜索
最值与查询
- RMQ
- 树状数组
- 线段树
最短路
- Dijkstra算法
- Bellman-Ford算法
- Floyd算法
- SPFA算法
- 差分约束
- A*算法
最小生成树
- Kruskal算法
- Prim算法
数学
- 最大公因数
- 最大公约数
- 辗转相除法
- 扩展GCD算法
- 大数问题
- 乘法逆元
- 线性同余式解法
- Lucas定理
- 中国剩余定理
- 欧拉函数
- 欧拉降幂公式
- 费马大定理
- 费马小定理
素数问题
- 素数的筛法
- 素因子的求法
几何
- 叉积/面积
- 凸包
- Graham扫描法
- 直线相交/线段相交
- 点在多边形内的判定
- 面积交/面积并
矩阵
- 行列式的计算
- 快速幂
- 路径的种数
线性方程组
- 克莱姆法则
- LU分解
- 高斯消元法
- 追赶法
字符串
- 普通KMP
- 扩展KMP
- AC自动机
- 回文自动机
- 后缀数组
- 后缀自动机
- Boyer-Moore算法
- Sunday算法
二分图
- 匈牙利算法
- KM算法
强连通
- Tarjan算法
- Korasaju算法
- 割点和桥
网络流
- Edmond-Karp算法
- Ford_Fulkerson算法
- Dinic算法
- 最大流/最小割/费用流
动态规划
- 递推/递归
- 记忆化搜索
- 状态压缩
- 数位/区间/树形
- 数字三角形
- 石子合并
- 01揹包
- 完全揹包
- 矩阵链乘
- 最大子段和
- 最长上升子序列
- 最长公共子序列
树相关
- 树上倍增/公共祖先
- 树链剖分
- 树的分治
- 动态树
- 虚树
其他
- 枚举
- 贪心
- 回溯
- 分治
- 二进制
- 博弈论
- 分块
- 莫队/树上莫队
- 爬山算法
- 随机增量法
- 容斥原理与莫比乌斯反演
- 快速傅里叶变换