【題目】
有乙個揹包,揹包容量是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 ...