分治 遞迴 動態規劃 貪心演算法區別

2021-10-04 19:32:52 字數 429 閱讀 5718

三者之間沒有根本區別,關鍵看有無最優的子結構。

共性:找到重複子問題

差異性:動態規劃尋找最優子結構,中間可以淘汰次優解

動態規劃是尋找區域性,全域性最優解

貪心演算法是找區域性最優解,不一定得到全域性最優解

回顧下遞迴四步驟:

terminator

process

drill dowm

restore current status

分治五步驟:

1.終止條件

2.拆分為子問題

3.呼叫下一層遞迴

4.處理以及合併返回的值

5.儲存當前層的值

動態規劃

分為自頂向下和自底向上的求解方法,在動態規劃演算法中會細講

遞迴,分治演算法,動態規劃和貪心選擇的區別

一般實際生活中我們遇到的演算法分為四類 一 判定性問題 二 最優化問題 三 構造性問題 四 計算性問題 而今天所要總結的演算法就是著重解決 最優化問題 演算法之道 對三種演算法進行了歸納總結,如下表所示 標準分治 動態規劃 貪心演算法 適用型別 通用問題 優化問題 優化問題 子問題結構 每個子問題不...

動態規劃,貪心,分治演算法的區別

以下摘自 演算法筆記 在區別它們之前我們先明確兩個概念 1.什麼是重疊子問題?如果乙個問題可以被分解為若干子問題,並且這些子問題會重複出現,那麼就稱這個問題為重疊子問題。2.什麼是最優子結構?如果乙個問題的最優解可以由其他子問題的最優解有效的構造出來,那麼這個問題擁有最優子問題。動態規劃與分治的區別...

貪心演算法 and 動態規劃

動態規劃dynamic programming 貪心演算法,又名貪婪法,是尋找最優解問題的常用方法 步驟1 從某個初始解出發 步驟2 採用迭代的過程,當可以向目標前進一步時,就根據區域性最優策略,得到一部分解,縮小問題規模 步驟3 將所有解綜合起來。假設你開了間小店,不能電子支付,錢櫃裡的貨幣只有 ...