装箱java代码

装箱java代码,java,arrays,algorithm,optimization,bin-packing,Java,Arrays,Algorithm,Optimization,Bin Packing,对于装箱问题,使用不同的算法可能很容易找到箱子的数量。因此,应该有一种方法来确定重量是否适合特定的箱子 下面的函数使用First Fit算法返回箱子数量。如何返回每个箱子的信息(哪个箱子包含哪些重量)? 提前感谢:) } //作用 public String firstFit(int weight[], int cap ){ int count=0,i,j; int len=weight.length,space; Bin [] bin= new Bin[len];

对于装箱问题,使用不同的算法可能很容易找到箱子的数量。因此,应该有一种方法来确定重量是否适合特定的箱子

下面的函数使用First Fit算法返回箱子数量。如何返回每个箱子的信息(哪个箱子包含哪些重量)? 提前感谢:)

}

//作用

public  String firstFit(int weight[], int cap ){
    int count=0,i,j;
    int len=weight.length,space;
    Bin [] bin= new Bin[len];

    for (i=0;i<len;i++) {
        bin[i].setSpace(cap);
        for (j=0;j<len;j++) {
            space=bin[j].getSpace();
            if (space >= weight[i]) {
                bin[j].addAttribute(j, weight[i]);
                bin[j].setSpace(space-weight[i]);
                count=j+1;
            }
        }
    }
    StringBuilder rs = new StringBuilder();
    rs.append(" Number of bin needed :  "+ count );
    for(i=0;i<count;i++) {
        rs.append("Bin ["+i+1+"]'s weights : ");
        for(j=0;j<len;j++) {
            rs.append(bin[i].getAttribute(j)+"  |");
        }
    } 
    String ms=rs.toString();
    return ms;
}
public String firstFit(int-weight[],int-cap){
int计数=0,i,j;
int len=重量、长度、空间;
Bin[]Bin=新的Bin[len];

对于(i=0;i到目前为止您尝试了什么?我尝试了一个具有两个属性(如剩余容量(int)和权重(int[])的bin类。然后我创建了一个bin类数组并尝试使用它。但它到目前为止不起作用。{}好的,你必须显示不起作用的代码,否则我们无法修复。我已经添加了代码。你能检查问题部分吗。为什么你有两个
firstFit()
方法?返回哪些箱子包含哪些重量是什么意思?
public class Bin {

private int space;
private int [] attribute;


public Bin () {

}


public int getSpace() {
    return space;
}


public void setSpace(int space) {
    this.space = space;
}


public int getAttribute(int a) {
    return attribute[a];
}


public void setAttribute(int[] attribute) {
    this.attribute = attribute;
}

public void addAttribute(int a, int b) {
    this.attribute[a]=b;
}
public  String firstFit(int weight[], int cap ){
    int count=0,i,j;
    int len=weight.length,space;
    Bin [] bin= new Bin[len];

    for (i=0;i<len;i++) {
        bin[i].setSpace(cap);
        for (j=0;j<len;j++) {
            space=bin[j].getSpace();
            if (space >= weight[i]) {
                bin[j].addAttribute(j, weight[i]);
                bin[j].setSpace(space-weight[i]);
                count=j+1;
            }
        }
    }
    StringBuilder rs = new StringBuilder();
    rs.append(" Number of bin needed :  "+ count );
    for(i=0;i<count;i++) {
        rs.append("Bin ["+i+1+"]'s weights : ");
        for(j=0;j<len;j++) {
            rs.append(bin[i].getAttribute(j)+"  |");
        }
    } 
    String ms=rs.toString();
    return ms;
}