c語(yǔ)言來(lái)實(shí)現(xiàn)貪心算法之裝箱問(wèn)題
更新時(shí)間:2015年03月13日 14:54:51 投稿:hebedich
這篇文章主要介紹了c語(yǔ)言來(lái)實(shí)現(xiàn)貪心算法之裝箱問(wèn)題,需要的朋友可以參考下
裝箱問(wèn)題,貪心算法求近似最優(yōu)解
復(fù)制代碼 代碼如下:
import java.util.Arrays;
import java.util.Comparator;
//裝箱問(wèn)題,貪心算法
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++){
//位置箱子重量為零跳過(guò)
if(boxs[i]==0){
continue;
}
unEnchase--;
while((boxCaptation-boxs[i])>=boxs[minIndex]){
int k=i+1;
for(;k>i;k++){
//位置箱子重量為零跳過(guò)
if(boxs[k]==0){
continue;
}
//將箱子加上去,原來(lái)位置清零
boxs[i]+=boxs[k];
int temp=boxs[k];
boxs[k]=0;
unEnchase--;
if(boxs[i]>boxCaptation){
//超過(guò)最大可容納體積,狀態(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)容了,希望大家能夠喜歡。
您可能感興趣的文章:
- C語(yǔ)言八皇后問(wèn)題解決方法示例【暴力法與回溯法】
- C++基于回溯法解決八皇后問(wèn)題示例
- C語(yǔ)言使用回溯法解旅行售貨員問(wèn)題與圖的m著色問(wèn)題
- C++回溯法實(shí)例分析
- C++實(shí)現(xiàn)八皇后問(wèn)題的方法
- c++遞歸實(shí)現(xiàn)n皇后問(wèn)題代碼(八皇后問(wèn)題)
- 八皇后問(wèn)題的相關(guān)C++代碼解答示例
- C語(yǔ)言實(shí)現(xiàn)的猴子吃桃問(wèn)題算法解決方案
- C語(yǔ)言使用深度優(yōu)先搜索算法解決迷宮問(wèn)題(堆棧)
- C語(yǔ)言基于貪心算法解決裝箱問(wèn)題的方法
- C語(yǔ)言基于回溯算法解決八皇后問(wèn)題的方法
相關(guān)文章
SpringCloud整合分布式服務(wù)跟蹤zipkin的實(shí)現(xiàn)
這篇文章主要介紹了SpringCloud整合分布式服務(wù)跟蹤zipkin的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Java實(shí)現(xiàn)Excel導(dǎo)出并添加水印
這篇文章主要為大家詳細(xì)介紹了Java如何使用poi-ooxml包導(dǎo)出xlsx添加水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
SpringCloud Config分布式配置中心使用教程介紹
springcloud config是一個(gè)解決分布式系統(tǒng)的配置管理方案。它包含了 client和server兩個(gè)部分,server端提供配置文件的存儲(chǔ)、以接口的形式將配置文件的內(nèi)容提供出去,client端通過(guò)接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應(yīng)用2022-12-12
Spring事務(wù)失效之常見(jiàn)場(chǎng)景分析
這篇文章主要介紹了Spring事務(wù)失效之常見(jiàn)場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
詳解SpringCloudGateway內(nèi)存泄漏問(wèn)題
這篇文章主要介紹了詳解SpringCloudGateway內(nèi)存泄漏問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
java swing 實(shí)現(xiàn)加載自定義的字體
這篇文章主要介紹了java swing 實(shí)現(xiàn)加載自定義的字體,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
MapStruct實(shí)體間轉(zhuǎn)換的簡(jiǎn)單用法
今天小編就為大家分享一篇關(guān)于MapStruct實(shí)體間轉(zhuǎn)換的簡(jiǎn)單用法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03

