那些程序員應該掌握的算法

排序
  • 冒泡排序
  • 選擇排序
  • 插入排序(二分插入)
  • 希爾排序
  • 堆排序
  • 快速排序
  • 歸併排序(二路歸併,多路歸併,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揹包
  • 完全揹包
  • 矩陣鏈乘
  • 最大子段和
  • 最長上升子序列
  • 最長公共子序列
樹相關
  • 樹上倍增/公共祖先
  • 樹鏈剖分
  • 樹的分治
  • 動態樹
  • 虛樹
其他
  • 枚舉
  • 貪心
  • 回溯
  • 分治
  • 二進制
  • 博弈論
  • 分塊
  • 莫隊/樹上莫隊
  • 爬山算法
  • 隨機增量法
  • 容斥原理與莫比烏斯反演
  • 快速傅里葉變換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章