loading.java

来自「,《算法设计与分析》王晓东编著」· Java 代码 · 共 50 行

JAVA
50
字号


//P154算法
public class Loading {
        
    
    static int n;                //集装箱数  
    static int[] w;              //集装箱重量数组   
    static int c;              //第一艘轮船的载重量
    static int cw;               //当前载重量
    static int bestw;            //当前最优载重量
    
    
    public static int maxLoading(int []ww,int cc)
    {
    	//初始化类数据成员
    	n=ww.length-1;
    	w=ww;
    	c=cc;
    	cw=0;
    	bestw=0;
    	//计算最优载重量
    	backtrack(1);
    	return bestw;
    }
    
    private static void backtrack(int i)
    {//搜索第i层结点
    	if(i>n){//到达叶结点 
    	   if(cw>bestw)bestw=cw;
    	   return;    	
    	}
    	//搜索子树
    	if(cw+w[i]<=c){//搜索左子树,即x[i]=1
    		cw+=w[i];
    		backtrack(i+1);
    		cw-=w[i];
    	}
    	backtrack(i+1);//搜索右子树
    }


    public static void main(String[] args) {
      int[]w1={10,20,20};    //集装箱重量数组
      int c1=40;             //第一艘轮船的载重量
      maxLoading(w1,c1);  
      System.out.println(bestw);  
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?