(完整)贪心算法0-1背包问题(算法实验代码)

时间:2022-07-14 01:11:19 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
(完整)贪心算法0-1背包问题(算法实验代码)

实验三、01背包问题(贪心算法)



实验代码:

include

int maxint aint b

if(ab return a else

return b }

void Knapsack(int *vint wint *x,int c,int n, int m[8][100 {

int ij

for(j=0jcj++)

ifjwn] mn][j]=0;

else m[n[j]=vn]; }

for(i=n1i=1;i-—)

forj=wi]j=c;j++

m[i]j]=maxm[i+1[j]m[i+1]jw[i]+vi) } for(i=1ii++)

if(m[i[c]==m[i+1]c] xi=0; else

{x[i=1 c=c-wi];} }

xn=(mnc])10; return }



int main()

int i=0 int n=7

int w[]=02,357,141}; int v[]=010,5,157,6183} int x[]=00,000,00,0} printf(”物品总数为:7\n"

1 / 2




(完整)贪心算法0-1背包问题(算法实验代码)

printf("物品重量和价值分别为:\n) printf"\n重量 价值 \n; for i=1i=n;i++)

printf(”%d %d \n",wi],vi]) int m=15

int array[8]100=0 Knapsack(v,wxm,7,array)

printf(”背包能装的最大价值为: %d\n,array1][m]); printf("贪心算法的解为: ) for(i=1i=n;i++) {

if(i==1)

printf(”%d",x[i]); else

printf(” %d”,x[i];

printf("\n"); return 0;



测试截图为:



2 / 2




本文来源:https://www.wddqw.com/doc/1cab33100b75f46527d3240c844769eae109a36a.html