多做题,通过考试没问题!

中学教师资格证信息技术(统考)

睦霖题库>教师资格证考试>中学教师资格证信息技术(统考)

用贪心算法设计0-1背包问题。要求:说明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间。

正确答案: 首先计算每种物品单位重量的价值Vi/Wi,然后,依贪心选择策略,将尽可能多的单位重量价值最高的物品装入背包。若将这种物品全部装入背包后,背包内的物品总重量未超过C,则选择单位重量价值次高的物品并尽可能多地装入背包。依此策略一直地进行下去,直到背包装满为止。
具体算法可描述如下:
void Knapsack(int n,float M,float v[],float w[],float x[])
{Sort(n,v,w);
int i;
for(i=1;i<=n;i++) x[i]=0;
float c=M;
for(i=1;i<=n;i++)
{if(w[i]>c) break;
x[i]=1;
c-=w[i];
}
if(i<=n)x[i]=c/w[i];
}
答案解析:
进入题库查看解析

微信扫一扫手机做题