题目内容
给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为M,应如何选择装入背包的物品,使得装入背包中物品的总价值最大。贪心算法如下:float greedy_knapsack(float M,float w[],float p[],float x[]) {//x[]背包问题最优解, w[ ]物品重量,P[]物品价值int n=w.length;float pp=0;float mm=M; //pp计算当前总价值,mm背包剩余载重for( int i=1;i<=n; i++ ) {float ww[i]=____; //计算物品单位价值ww[ ]x[i]=0;} //初始化Mergesort(w[], n); //按单位价值ww[]将物品降序, 便于贪心选择for(int i=1; i<=n; i++ ) {//贪心选择,总是选择价值最大放入背包if(w[i]<=mm) {//当前物品小于背包剩余载重x[i]=1;mm=____;pp=____;} else {x[i]=mm/w[i];pp=____;break;} //i部分放入背包}return pp;}
查看答案
搜索结果不匹配?点我反馈