算法java实现--贪心算法--最优装载问题

最优装载问题算法的java实现(贪心算法)

具体问题描述以及C/C++实现参见网址

【贪心算法】背包问题,最优装载问题

/**
 * 最优装载问题(贪心算法)
 * @author Lican
 *
 */
public class BestLoading {
public 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);
}
java.util.Arrays.sort(d);
for(int i=0;i<n;i++)
x[i]=0;
float op=0;
for(int i=0;i<n&&d[i].w<=c;i++){
op+=d[i].w;
c-=d[i].w;
x[d[i].i]=1;
}
return op;
}
static class Element implements Comparable{
float w;
int i;
public Element(float ww,int ii){
w=ww;
i=ii;
}
@Override
public int compareTo(Object x) {//按每个重量从小到大排列
float xx=((Element)x).w;
if(this.w<xx) return -1;
if(this.w==xx) r

猜你喜欢

转载自blog.csdn.net/m0_62089210/article/details/128129945