您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 贪心算法0-1背包问题(算法实验代码)
1/2实验三、0-1背包问题(贪心算法)实验代码:#includestdio.hintmax(inta,intb){if(ab)returna;elsereturnb;}voidKnapsack(int*v,int*w,int*x,intc,intn,intm[8][100]){inti,j;for(j=0;jc;j++){if(jw[n])m[n][j]=0;elsem[n][j]=v[n];}for(i=n-1;i=1;i--){for(j=w[i];j=c;j++)m[i][j]=max(m[i+1][j],m[i+1][j-w[i]]+v[i]);}for(i=1;in;i++){if(m[i][c]==m[i+1][c])x[i]=0;else{x[i]=1;c=c-w[i];}}x[n]=(m[n][c])?1:0;return;}intmain(){inti=0;intn=7;intw[]={0,2,3,5,7,1,4,1};intv[]={0,10,5,15,7,6,18,3};intx[]={0,0,0,0,0,0,0,0};2/2printf(物品总数为:7\n);printf(物品重量和价值分别为:\n);printf(\n重量价值\n);for(i=1;i=n;i++)printf(%d%d\n,w[i],v[i]);intm=15;intarray[8][100]={0};Knapsack(v,w,x,m,7,array);printf(背包能装的最大价值为:%d\n,array[1][m]);printf(贪心算法的解为:);for(i=1;i=n;i++){if(i==1)printf(%d,x[i]);elseprintf(%d,x[i]);}printf(\n);return0;}测试截图为:
本文标题:贪心算法0-1背包问题(算法实验代码)
链接地址:https://www.777doc.com/doc-5571490 .html