貪心演算法 (Greedy Algorithms)#
貪心演算法(Greedy Algorithm)是一種在每一步選擇中都採取當前看來最優選擇的演算法策略。
核心思維#
貪心演算法的本質是追求局部最優解(Local Optimal),並期望透過累積局部最優,最終達到全域最優解(Global Optimal)。
關鍵特性#
| 特性 | 說明 |
|---|---|
| 決策不可回退 | 一旦做出選擇就不會改變 |
| 無需儲存中間狀態 | 只保留當前最優解 |
| 計算速度快 | 通常為 O(n) 或 O(n log n) |
| 適用範圍有限 | 需要問題具備最佳子結構 |
貪心 vs 動態規劃#
| 策略 | 決策方式 | 風險 / 代價 |
|---|---|---|
| 貪心 | 每步選當前最優,不回頭 | 可能陷入局部最優 |
| 動態規劃 | 記錄多種可能,最後選全域最優 | 需儲存更多中間狀態 |
當貪心法失效時,通常需要改用動態規劃。
跨倉庫導讀#
- 對應 LeetCode 練習:Greedy ↗