To be completed!
Now: p77

# 常見演算法

排序演算法矩陣處理遞迴函數分而治之法動態規劃法最短路徑法最小生成樹平衡樹 等。

  1. 排序、搜尋演算法:通常會有明確的排序需求或找出特定的值。
  2. Greedy algo: 通常只需使用迴圈,每次迴圈中選當下最好的選擇即可。難在不好確認是否適用貪婪演算法。
  3. Dynamic programming: 性質和遞迴、排列組合類似。假設已知前幾項的結果,若能用它來推後面的答案,則此題可用 DP 來解。

    動態規劃 vs 遞迴
    DP 是用表格來暫存運算結果,可以解決遞迴經常重複運算的缺點,常見的題目包含找零錢和最短路徑問題。

  4. 圖形走訪: DFS (深度優先)、BFS (廣度優先,若每一層代表新的一步,則保證可以找到最短的解答)。

    常見的加速方法 — 剪枝 (tree cut):
    若目前的狀態和所衍生出的狀態都不可能是最佳解,則此節點就沒有繼續看下去的必要了。

  5. 最小生成樹
Edited on