演算法 12 貪心

2021-10-24 17:38:27 字數 515 閱讀 4910

概念

所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的區域性最優解。

貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略必須具備無後效性(即某個狀態以後的過程不會影響以前的狀態,只與當前狀態有關。)

所以,對所採用的貪心策略一定要仔細分析其是否滿足無後效性。

基本思路

建立數學模型來描述問題

把求解的問題分成若干個子問題

對每個子問題求解,得到子問題的區域性最優解

把子問題的解區域性最優解合成原來問題的乙個解

存在的問題

不能保證求得的最後解是最佳的

不能用來求最大值或最小值的問題

只能求滿足某些約束條件的可行解的範圍

適用的問題

貪心策略適用的前提是:區域性最優策略能導致產生全域性最優解。

實際上,貪心演算法適用的情況很少。一般對乙個問題分析是否適用於貪心演算法,可以先選擇該問題下的幾個實際資料進行分析,就可以做出判斷。

有趣的演算法問題12 跳躍遊戲1(貪心演算法)

所有演算法均是用c 編寫 所有題目均是來自計蒜客 我好想回爐重造。給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後乙個下標。例如 a 2,3,1,1,4 能夠跳躍到最後乙個下標,輸出true a 3,2,1,...

貪心演算法之 噴水裝置二(nyoj12)

題目描述 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有一塊草坪,橫向長w,縱向長為h,在它的橫向中心線上不同位置處裝有n n 10000 個點狀的噴水裝置,每個噴水裝置i噴水的效果是讓以它為中心半徑為ri的圓都被潤濕。請在給出的噴水裝置中選擇盡量少的噴水裝置,把整個草坪...

python貪心法 演算法 貪心

貪心演算法也被稱為貪婪演算法,它是指在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與...