Skip to content

Latest commit

 

History

History
10 lines (7 loc) · 933 Bytes

File metadata and controls

10 lines (7 loc) · 933 Bytes

第三章-動態規劃

動態規劃是分治法的延伸。當遞迴分割出來的問題,一而再、再而三出現,就運用記憶法儲存這些問題的答案,避免重複求解,以空間換取時間。 動態規劃的過程,就是反覆地讀取數據、計算數據、儲存數據。

遞迴就算是一種 Top-Down

迴圈迭代(DP)就算是一種 Bottom-Up

動態規劃 VS 分而治之

動態規劃與分而治之兩者相似在於,他們會先將一個問題切成數個較小且性質相同的問題。然而動態規劃會先去計算較小的問題,並且儲存計算的結果。若後面有需要先前以計算的部分,就不必重新計算而可以直接從先前儲存的結果中去取得。動態規劃在程式中主要是以陣列來儲存計算的結果,並且在陣列中逐步建構出最後結果。因此動態規劃這種計算方式歸類為由下而上(Bottom-Up)的演算法。