數據結構與算法
算法基礎
- 時間複雜度
- 空間複雜度
- 最大複雜度
- 平均複雜度
基礎數據結構
線性表
- 順序表
- 鏈表
- 跳躍表
- 並查集
棧與隊列
- 棧
- 隊列
- 優先隊列
- 堆
- 多級反饋隊列
哈希表
- 碰撞解決辦法:
- 開放地址法
- 鏈地址法
- 再次哈希法
- 建立公共溢出區
- 布隆過濾器
樹
- 二叉樹: 各種遍歷,遞歸與非遞歸
- 哈夫曼樹與編碼
- AVL樹
- B樹與B+樹
- 前綴樹
- 紅黑樹
- 線段樹
數組
- 樹狀數組
- 矩陣
常見算法
十大排序算法
- 簡單排序:
- 插入排序
- 選擇排序
- 冒泡排序
- 分治排序:
- 快速排序 : 注意軸的選取方式
- 歸併排序
- 分配排序:
- 桶排序
- 基數排序
- 樹狀排序:
- 堆排序
- 計數排序
- 希爾排序
圖論算法
- 圖的表示:
- 鄰接矩陣
- 鄰接表
- 遍歷算法:
- 深度搜索
- 廣度搜索
- 最短路徑算法:
- Floyd
- Dijkstra
- 最小生成樹算法:
- Prim
- Kruskal
- 實際常用算法:
- 關鍵路徑
- 拓撲排序
- 二分圖匹配:
- 配對算法
- 匈牙利算法
- 拓展:
- 中心性算法
- 社區算法
搜索與回溯算法
- 貪心算法
- 啓發式搜索算法:
- A*尋路算法
- 地圖着色算法
- N皇后問題
- 最優加工算法
- 旅行商問題
動態規劃
- 樹形DP:
- 01揹包問題
- 線性DP:
- 最長公共子序列
- 最長公共子串
- 區間DP:
- 矩陣最大值
- 矩陣最大和
- 矩陣最大積
- 數位DP:
- 數字遊戲
- 狀態壓縮DP:
- 旅行商
字符串匹配算法
- 正則表達式
- 模式匹配:
- KMP
- Boyer-Moore
流相關算法
- 最大流:
- 最短增廣路
- Dinic算法
- 最大流最小割:
- 最大收益問題
- 方格取數問題
- 最小費用最大流:
- 最小費用路
- 消遣