To be completed!
Now: p77
# 常見演算法
排序演算法
, 矩陣處理
, 遞迴函數
, 分而治之法
, 動態規劃法
, 最短路徑法
, 最小生成樹
和 平衡樹
等。
- 排序、搜尋演算法:通常會有明確的排序需求或找出特定的值。
- Greedy algo: 通常只需使用迴圈,每次迴圈中選當下最好的選擇即可。難在不好確認是否適用貪婪演算法。
- Dynamic programming: 性質和遞迴、排列組合類似。假設已知前幾項的結果,若能用它來推後面的答案,則此題可用 DP 來解。
動態規劃 vs 遞迴
DP 是用表格來暫存運算結果,可以解決遞迴經常重複運算的缺點,常見的題目包含找零錢和最短路徑問題。 - 圖形走訪: DFS (深度優先)、BFS (廣度優先,若每一層代表新的一步,則保證可以找到最短的解答)。
常見的加速方法 — 剪枝 (tree cut):
若目前的狀態和所衍生出的狀態都不可能是最佳解,則此節點就沒有繼續看下去的必要了。 - 最小生成樹