一 數學(Mathematics)
1 離散數學(Discrete Mathematics)
1.1 圖論(Graph Theory)
圖的遍歷(Graph Traversal): DFS, BFS
最小生成樹(Minimum Spanning Tree): Prim, Kruskal
最短路徑(Shortest Path): Dijkstra, Floyd
傳遞閉包(Transitive Closure)
關節點(Articulation Point - UndiGraph)
拓撲排序(Topological Sort - AOV-Network)
關鍵路徑(Critical Path - AOE-Network)
迴路問題: 歐拉路(Euler Path), 漢密爾頓迴路(Hamilton Tour)
差分約束(Difference Constraints): Bellman-Ford
二部圖匹配(Bipartite Matching)
網絡流(Network Flow)
...
1.2 組合數學(Combinatorics)
2 數論(Number Theory)
2.1 素數: GCD, LCM...
2.2 同餘
3 計算幾何(Computational Geometry)
線段相交, 多邊形面積, 內點外點的判斷, 凸包(Convex Hull), 重心(Bary Center)...
4 線性代數
矩陣(Matrix), 線性方程組(Linear Equations)...
5 概率論
6 初等數學與解析幾何
7 高等數學
點積(Dot Product), 差積(Cross Product), 積分(Integral), 微分(Differential)...
二 數據結構(Data Structure)
1 線性結構
線性表(Linear List)
棧(Stack), 隊列(Queue)
數組(Array), 串(String), 廣義表(General List)
2 非線性結構
樹(Tree)
堆(Heap)
圖(Graph)
3 排序
3.1 插入排序
直接插入排序(Insert Sort) O(n^2)
折半插入排序(Binary Insert Sort)
希爾排序(Shell Sort)
3.2 交換排序
冒泡排序(Bubble Sort) O(n^2)
快速排序(Quick Sort)?? O(nlogn)
3.3 選擇排序
直接選擇排序(Select Sort) O(n^2)
錦標賽排序(Tournament Sort) O(nlogn)
堆排序(Heap Sort) O(nlogn)
3.4 歸併排序(Merge Sort) O(nlogn)
3.5 基數排序(Radix Sort) O(d(n+radix))
4 查找
4.1 二分(Binary Search)
4.2 樹型
二叉搜索樹(Binary Search Tree)
平衡搜索樹(AVL Tree)
並查集(Union-Find Set)
4.3 哈希(Hashing)
三 算法(Algorithm)
1 模擬算法
2 搜索算法
2.1 枚舉搜索(Enumeration)
2.2 深度優先(Depth First Search)
2.3 廣度優先(Breadth First Search)
2.4 啓發式搜索(Heuristic Search)
3 以“相似或相同子問題”爲核心的算法
3.1 遞推
3.2 遞歸(Recursion)
3.3 貪心法(Greedy)
3.4 動態規劃(Dynamic Programming)