貪心演算法概要
貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。
個人理解
個人覺得貪心演算法,就是發現最終最優和區域性最優間的關係,如果找不出這種必然關係,那麼就無法用貪心演算法去解決問題。
問題描述
假定有6個物品,他的質量分別是{35,30,60,50,40,10,25}kg
他們的**分別是{10,40,30,50,35,40,30}元。
如果只能帶走150kg的東西,你應該如何選擇?
解題思路
我們知道,可以通過價效比來進行判斷。所以我們可以通過求出價效比,然後排序價效比,然後從價效比最大的開始選擇,直到裝滿為止。這就是貪心演算法的思路。
**
package tanxin;
public class beibao ;
public static int value = new int ;
// public void greedypackage(int capacity, int weight , int value)
//價效比排序
for (int i = 0; i < n - 1; i++)
}}
//把質量和價值也按照價效比的排序順序對應好,存到新陣列裡
int newweight = new int[n];
int newvalue = new int[n];
for (int i = 0; i < n; i++)
double maxvalue = 0;
//裝東西,優先拿價效比高的
for (int i = 0; i < n; i++)
} system.out.print("共放下了" + (max_weight - capacity) +"kg重的東西\n");
system.out.print("總價值" + maxvalue); }
public static void main(string args)
}
執行結果
共放下了115kg重的東西
總價值160.0
揹包問題(貪心演算法)
揹包問題 程式8 4 2.cpp 定義控制台應用程式的入口點。揹包問題 貪心演算法 include stdafx.h define maxnumber 20 typedef struct node object float find object wp,int n,float m i 0 while...
貪心演算法 揹包問題
詳細見原帖 我寫的是自己的感悟 揹包問題 有乙個揹包,揹包容量是m 150。有7個物品,物品可以分割成任意大小。要求盡可能讓裝入揹包中的物品總價值最大,但不能超過總容量。物品 a b c d e f g 重量 35 30 60 50 40 10 25 價值 10 40 30 50 35 40 30 ...
貪心演算法 揹包問題
貪心演算法 當前最優解 例如在刪除數的乙個例子中,乙個長度不大於240位的整數中,隨機刪除n個數,要求使得剩餘的數 從左到右的,組成乙個最小的整數 貪心步驟 例如 乙個數 1457326 n 4 1 找到當前最大的數 7 刪除 145326 2 找到當前最大的數 6 刪除 14532 3 找到當前最...