排序
- 冒泡排序
- 選擇排序
- 插入排序(二分插入)
- 希爾排序
- 堆排序
- 快速排序
- 歸併排序(二路歸併,多路歸併,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揹包
- 完全揹包
- 矩陣鏈乘
- 最大子段和
- 最長上升子序列
- 最長公共子序列
樹相關
- 樹上倍增/公共祖先
- 樹鏈剖分
- 樹的分治
- 動態樹
- 虛樹
其他
- 枚舉
- 貪心
- 回溯
- 分治
- 二進制
- 博弈論
- 分塊
- 莫隊/樹上莫隊
- 爬山算法
- 隨機增量法
- 容斥原理與莫比烏斯反演
- 快速傅里葉變換