基於貪心演算法的揹包問題

2021-08-01 08:31:50 字數 1065 閱讀 1493

【題目】

有乙個揹包,揹包容量是m=150。有7個物品,物品可以分割成任意大小。

要求盡可能讓裝入揹包中的物品總價值最大,但不能超過總容量。

物品 a b c d e f g

重量 35 30 60 50 40 10 25

價值 10 40 30 50 35 40 30

【實驗**】

#include

/*

*x----存放物品的陣列

m-----揹包的容量

*/static

void knapsack(int n,float m,float *v,float *w,float *x)

//當此時揹包的容量不夠存放整個物品的情況時,存放一部分

if(i/*

n-----揹包可以存放物品的種類

*p----指向存放物品價值的陣列

*q----指向存放物品重量的陣列

*/void sort(int n,float *p,float *q) }

int main()

;//各種物品的重量

float v1[7]=;//各種物品的價值

float x1[6];//存放各種物品的存放情況

float *x;

float *w;

float *v;

w=w1;

v=v1;

x=x1;

int i;

for(i=0;i0;

knapsack(n,m,v1,w1,x);

printf("\n物品重量:\n");

for(i=0;iprintf("%.1f\t",*(w+i));

printf("\n\n物品價值:\n");

or(i=0;iprintf("%.1f\t",*(v+i));

printf("\n\n物品存放情況:\n");

for(i=0;iprintf("%.1f\t",*(x+i));

return

0;

}

基於貪心演算法的0 1揹包問題

貪心演算法的思想 貪心演算法不是某種特定的演算法,而是一類抽象的演算法,或者說只是一種思想,它的具體表現在,對解空間進行搜尋時,不是機械地搜尋,而是對區域性進行擇優選取,貪心演算法的目的不是為了找到全部解,也當然找不出最優解,而只是找出一種可行解,這樣效率就比較高。因此,貪心演算法也叫啟發式搜尋,這...

揹包問題(貪心演算法)

揹包問題 程式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 ...