三者之間沒有根本區別,關鍵看有無最優的子結構。
共性:找到重複子問題
差異性:動態規劃尋找最優子結構,中間可以淘汰次優解
動態規劃是尋找區域性,全域性最優解
貪心演算法是找區域性最優解,不一定得到全域性最優解
回顧下遞迴四步驟:
terminator
process
drill dowm
restore current status
分治五步驟:
1.終止條件
2.拆分為子問題
3.呼叫下一層遞迴
4.處理以及合併返回的值
5.儲存當前層的值
動態規劃
分為自頂向下和自底向上的求解方法,在動態規劃演算法中會細講
遞迴,分治演算法,動態規劃和貪心選擇的區別
一般實際生活中我們遇到的演算法分為四類 一 判定性問題 二 最優化問題 三 構造性問題 四 計算性問題 而今天所要總結的演算法就是著重解決 最優化問題 演算法之道 對三種演算法進行了歸納總結,如下表所示 標準分治 動態規劃 貪心演算法 適用型別 通用問題 優化問題 優化問題 子問題結構 每個子問題不...
動態規劃,貪心,分治演算法的區別
以下摘自 演算法筆記 在區別它們之前我們先明確兩個概念 1.什麼是重疊子問題?如果乙個問題可以被分解為若干子問題,並且這些子問題會重複出現,那麼就稱這個問題為重疊子問題。2.什麼是最優子結構?如果乙個問題的最優解可以由其他子問題的最優解有效的構造出來,那麼這個問題擁有最優子問題。動態規劃與分治的區別...
貪心演算法 and 動態規劃
動態規劃dynamic programming 貪心演算法,又名貪婪法,是尋找最優解問題的常用方法 步驟1 從某個初始解出發 步驟2 採用迭代的過程,當可以向目標前進一步時,就根據區域性最優策略,得到一部分解,縮小問題規模 步驟3 將所有解綜合起來。假設你開了間小店,不能電子支付,錢櫃裡的貨幣只有 ...