《算法设计与分析》--《贪心算法》--最优装载随笔

1、最优装载的目的:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受到限制的时候,尽量能多装吧。。

2、形式化的描述:max{(Wi*Xi)(求和)<=C,其中x属于{0,1} ,1<=i<=n;(Wi*Xi求和,并且取最大值)

3、算法描述如下:使用贪心算法求解:

public static float loading(float c,float[] w,int[] x){

int n = w.length;
Element[] d = new Element[n];
for(int i = 0;i<n;i++)
d[i] = new Element([w[i],i);
MergeSort.mergeSort(d);
float opt = 0;
for(int i =0;i<n;i++)x[i]=0;
for(int i = 0;i<n && d[i].w<=c;i++){
x[d[i].i]=1;
opt+ =d[i].w;
c-=d[i].w;
}
return opt;
}

Element类说明:
public static class Element implements Comparable{
float w;
int i;
public Element(float ww,int ii){
w =ww;
i =ii;
}
public int comparaTo(Object x){
float xw = ((Element) x).w;
if(w < xw)return -1;
if(w == wx) return 0;
return 1;
}
}

 

全部评论

相关推荐

我的人生算是废了,23届裸辞空档一年,存款只能坚持几个月了,找不到像样的工作了,人生何去何从。
梦想是成为七海千秋:这大环境下为什么要裸辞呀,风险真的挺大的,而且社招的话23届没有太多的竞争力,不过既然已经裸辞了就不要焦虑慢慢找。
点赞 评论 收藏
分享
牛客928043833号:在他心里你已经是他的员工了
点赞 评论 收藏
分享
dao_yi:投了1000个左右,回消息的很少,要简历然后说过几天联系的都没有消息了,约面试的基本都是3000左右,足够在当地生活,最后去了一个武汉的3000,干了两天回来考研了,感觉这个行业加班是常态,看能不能考研上岸找个国企,或者大厂。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务