日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈贪心算法

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈贪心算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是貪心算法?
維基百科對其的定義如下:

貪心算法(英語:greedy algorithm),又稱貪婪算法,是一種在每一步選擇中都采取在當(dāng)前狀態(tài)下最好或最優(yōu)(即最有利)的選擇,從而希望導(dǎo)致結(jié)果是最好或最優(yōu)的算法。
貪心算法在有最優(yōu)子結(jié)構(gòu)的問題中尤為有效。最優(yōu)子結(jié)構(gòu)的意思是局部最優(yōu)解能決定全局最優(yōu)解。簡單地說,問題能夠分解成子問題來解決,子問題的最優(yōu)解能遞推到最終問題的最優(yōu)解。
貪心算法與動態(tài)規(guī)劃的不同在于它對每個子問題的解決方案都做出選擇,不能回退。動態(tài)規(guī)劃則會保存以前的運算結(jié)果,并根據(jù)以前的結(jié)果對當(dāng)前進(jìn)行選擇,有回退功能。
貪心法可以解決一些最優(yōu)化問題,如:求圖中的最小生成樹、求哈夫曼編碼……對于其他問題,貪心法一般不能得到我們所要求的答案。一旦一個問題可以通過貪心法來解決,那么貪心法一般是解決這個問題的最好辦法。由于貪心法的高效性以及其所求得的答案比較接近最優(yōu)結(jié)果,貪心法也可以用作輔助算法或者直接解決一些要求結(jié)果不特別精確的問題。

某種程度上,貪心算法和動態(tài)規(guī)劃有一定的相似性都是先分解子問題。但動態(tài)規(guī)劃實質(zhì)上是窮舉法,只是會省去重復(fù)計算,更像是一種途徑和方法而不是一種特殊算法。而貪心算法每次都選擇局部的最優(yōu)解,并不考慮這個局部最優(yōu)選擇對全局的影響,最后產(chǎn)生整體最優(yōu)解或其近似解。

貪心類問題一般需要設(shè)置當(dāng)前最佳情況和總體最佳情況,并根據(jù)當(dāng)前最佳情況不斷更新最佳情況。即設(shè)置xx_now,用于對比記錄當(dāng)前最佳情況改變前后的情況,再設(shè)置一個xx_all,比較當(dāng)前最佳情況和保存下來的總體最佳情況并再次保存下來。

例題見:
最大子序和
貪心之判斷子序列
貪心算法之檸檬水找零
貪心算法之分發(fā)餅干
貪心算法之買賣股票的最佳時機 II

總結(jié)

以上是生活随笔為你收集整理的浅谈贪心算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。