貪心演算法和動態規劃
相同點:要求乙個問題具有最優子結構的性質。
不同點:動態規劃每一步都要進行一次選擇,但是選擇依賴於子問題的解;
貪心演算法進行選擇時,直接作出在當前問題中看來最優的選擇,而不考慮子問題的解。
例如0-1揹包問題就可以用動態規劃解決而不能用貪心演算法,但是分數揹包問題就是用貪心演算法解決而不是動態規劃。
關於0-1揹包問題,有乙個很好的博文可以分享如下:
至於b樹、b+樹,有乙個很好的博文可以分享如下:
貪心演算法 and 動態規劃
動態規劃dynamic programming 貪心演算法,又名貪婪法,是尋找最優解問題的常用方法 步驟1 從某個初始解出發 步驟2 採用迭代的過程,當可以向目標前進一步時,就根據區域性最優策略,得到一部分解,縮小問題規模 步驟3 將所有解綜合起來。假設你開了間小店,不能電子支付,錢櫃裡的貨幣只有 ...
小白高階之貪心演算法 赫夫曼編碼
赫夫曼編碼是根據字元的使用頻率對字元進行編碼的一種編碼方法,其用於壓縮資料的效果非常好。一般用二叉樹表示赫夫曼編碼,使用頻率越低的字元,其深度越大。其中q表示乙個按頻率從小到大排序的優先佇列。在赫夫曼編碼的表示中,通常用字首碼的表達方法。字首碼即沒有任何碼字是其他碼字的字首,其作用是簡化解碼過程。用...
動態規劃與貪心演算法
1.動態規劃演算法 在解決最優解時我們用到的兩個演算法,貪心與動態規劃演算法,接下來我根據自己的理解解釋兩者的差異之處。貪心會怎樣做,動態規劃又會怎樣做?我的了解,貪心演算法是自頂向下,及每一步向下都取最大值,但得到的是最優解嗎?如圖顯然不是。接下來我會逐一跟大家演示。動態規劃解法,從小規模來看是否...