国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

c語言來實(shí)現(xiàn)貪心算法之裝箱問題

2019-11-26 15:15:56
字體:
供稿:網(wǎng)友

裝箱問題,貪心算法求近似最優(yōu)解

復(fù)制代碼 代碼如下:

import java.util.Arrays;
import java.util.Comparator;
//裝箱問題,貪心算法
public class Enchase {
    public void test1() {
        Integer[] boxs={34,6,40,2,23,12,12};
        int boxCaptation=40;//箱子容量
        //倒序
        Arrays.sort(boxs, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        int unEnchase=boxs.length;//未裝箱數(shù)
        int minIndex=boxs.length-1;//最小的箱子指向
        while (unEnchase>0) {
            for(int i=0;i<boxs.length;i++){
                //位置箱子重量為零跳過
                if(boxs[i]==0){
                    continue;
                }
                unEnchase--;
                while((boxCaptation-boxs[i])>=boxs[minIndex]){
                    int k=i+1;
                    for(;k>i;k++){
                        //位置箱子重量為零跳過
                        if(boxs[k]==0){
                            continue;
                        }
                        //將箱子加上去,原來位置清零
                        boxs[i]+=boxs[k];
                        int temp=boxs[k];
                        boxs[k]=0;
                        unEnchase--;
                        if(boxs[i]>boxCaptation){
                            //超過最大可容納體積,狀態(tài)復(fù)原
                            unEnchase++;
                            boxs[k]=temp;
                            boxs[i]-=boxs[k];
                            continue;
                        }
                        //最小箱子更新
                        if(k==minIndex){
                            for(int y=minIndex;y>0;y--){
                                if(boxs[y]!=0){
                                    minIndex=y;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
        //統(tǒng)計(jì)箱子數(shù)
        int Boxcount=0;
        System.out.println("裝箱結(jié)果:");
        for(int i=0;i<boxs.length;i++){
            System.out.print(boxs[i]+"/t");
            if(boxs[i]==0){
                continue;
            }
            Boxcount++;
        }
        System.out.println("/n箱子數(shù):"+Boxcount);
    }
    public static void main(String[] args) {
        new Enchase().test1();
    }
}

以上就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 双桥区| 呼图壁县| 太和县| 孝义市| 桃园县| 大渡口区| 柞水县| 绥滨县| 闽侯县| 固始县| 吉木乃县| 泉州市| 永泰县| 望都县| 敦化市| 肇源县| 晴隆县| 沾化县| 榆社县| 梧州市| 苏尼特右旗| 公安县| 安新县| 二连浩特市| 阳朔县| 河间市| 松潘县| 宁强县| 阜新| 西藏| 磐石市| 佛学| 社旗县| 京山县| 鄂伦春自治旗| 呼伦贝尔市| 永兴县| 安顺市| 宜兰县| 若尔盖县| 剑阁县|