1、給定 n 種物品和乙個揹包,物品 i 的重量是 w[i], 其價值是 p[i], 揹包的容量為 c。設物品已按單位重量價值遞減的次序排序。每種物品不可以裝入揹包多次,但可以裝入部分的物品 i。揹包問題是選擇裝入揹包中的物品,在不超過揹包容量的前提下使揹包的得總價值最大。用貪心法設計與實現乙個演算法,求解揹包問題。
#include
#include
#include
using namespace std;
typedef struct
char name[5];
float value;
float weight;
float rate;
}thing;
typedef struct
thing thing[3];
float value;
float weight;
float rate;
}bag;
void sort(thing thing1,thing thing2)
thing temp;
if(thing1.rate>thing2.rate)
temp = thing1;
thing1 = thing2;
thing2 = temp;
int main()
thing thing[3];
thing[0].value = 9;thing[1].value = 10;thing[2].value = 12;
thing[0].weight = 3;thing[1].weight = 5;thing[2].weight = 8;
thing[0].rate = thing[0].value/thing[0].weight;
thing[1].rate = thing[1].value/thing[1].weight;
thing[2].rate = thing[2].value/thing[2].weight;
strcpy(thing[0].name,"book");
strcpy(thing[1].name,"note");
strcpy(thing[2].name,"pen");
for(int i = 0;i<3;i++)
for(int j = 0;j<2;j++)
sort (thing[j],thing[j+1]);
cout<<"目前總共有以下物品:"coutbag.weight = 14;
int i = 0;
bag.rate = 0;
bag.value = 0;
while(bag.weight>0)
if(bag.weight-thing[i].weight >=0)
bag.weight -= thing[i].weight;
bag.thing[i].weight = thing[i].weight;
bag.value +=thing[i].value;
bag.rate += (bag.weight/14)/100;
bag.thing[i] = thing[i];
bag.thing[i].weight = thing[i].weight;
thing[i].weight = 0;
else
bag.thing[i].weight = bag.weight;
thing[i].weight -= bag.weight;
bag.value +=thing[i].rate*bag.weight;
bag.rate = 1;
strcpy(bag.thing[i].name,thing[i].name);
bag.weight = 14;
break;
if(i == 2)bag.weight = 14 - bag.weight;
i++;
cout<<"揹包外有以下物品:"coutif(strcmp(bag.thing[i].name,thing[i].name)==0)
cout 定義每個古董重量 揹包問題 在對問題求解時,總是作出在當前看來是最好的選擇。也就是說,不從整體上加以考慮,它所作出的僅僅是在某種意義上的區域性最優解 是否是全域性最優,需要證明 有一天海盜們截獲了一艘裝滿各種各樣古董的貨船,每一件都價值連城,一旦打碎就是去了價值,海盜船載重量為c,每件固定的重量為w... 有如下場景 針對一組資料,我們定義了限制值和期望值,希望從中選出幾個資料,在滿足限制值的情況下,期望值最大。為了達到上述目的,貪心演算法是其中的乙個解決方案。例如,路徑選擇問題,從 s 城市至 e 城市,在只能路過 2 個城市的情況下,如何走的最短,如下圖所示 英文全稱 greedy algorit... 貪心演算法在對問題進行求解時,總是做出在當前看來最好的選擇,即不從整體最優上加以考慮,而是進行某種意義上的區域性最優解。一般將求解過程分成若干個步驟,但每個步驟都應用貪心原則,選取當前狀態下最好 最優的選擇 區域性最有利的選擇 並以此希望最後堆疊出的結果也是最好 最優的解 分析 1.確定初始位置和能...資料結構與演算法 貪心演算法
資料結構與演算法 貪心演算法
資料結構與演算法 (2)貪心演算法