当前位置: 首页 > news >正文

java实现 一维装箱问题_c语言来实现贪心算法之装箱问题

装箱问题,贪心算法求近似最优解

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() {

@Override

public int compare(Integer o1, Integer o2) {

return o2-o1;

}

});

int unEnchase=boxs.length;//未装箱数

int minIndex=boxs.length-1;//最小的箱子指向

while (unEnchase>0) {

for(int i=0;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){

//超过最大可容纳体积,状态复原

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;

}

}

}

}

//统计箱子数

int Boxcount=0;

System.out.println("装箱结果:");

for(int i=0;i

System.out.print(boxs[i]+"\t");

if(boxs[i]==0){

continue;

}

Boxcount++;

}

System.out.println("\n箱子数:"+Boxcount);

}

public static void main(String[] args) {

new Enchase().test1();

}

}

以上就是本文的全部内容了,希望大家能够喜欢。

相关文章:

  • hmcl电脑java我的世界启动器_hello minecraft下载
  • 强制停止java_java – 如何强制停止Android应用程序
  • acacm icpc java_用Latex高效整理你的ACM-ICPC模板
  • java getmethods_java – 什么决定了Class.getMethods()的返回顺序?
  • java mapper xml 参数_Mybatis 文档篇 3.4:Mapper XML 之 Parameters
  • java类的加载是jvm,JVM学习(一):Java类的加载机制
  • PHP一点上传文件时下载文件啦,PHP中上传大体积文件时需要的设置
  • php big5 转utf8,php如何实现big5转utf8
  • kulc的java算法,Java KualiDecimal.ZERO屬性代碼示例
  • 用php实现一用户登陆程序,php实现简单用户登录功能程序代码
  • php mysql 实例教程,PHP和MySql开发实例教程
  • matlab与plc连接,基于Matlab与PLC的实时控制系统
  • matlab中偶分量怎么表示,matlab信号与系统演示实验
  • mysql使用混合引擎如何,MySQL香港高防服务器在事物中混合使用存储引擎
  • 手动 php linux,linux下手动搭建php+mysql+nginx
  • 分享一款快速APP功能测试工具
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Android Studio:GIT提交项目到远程仓库
  • github指令
  • golang 发送GET和POST示例
  • js中forEach回调同异步问题
  • overflow: hidden IE7无效
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 免费小说阅读小程序
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 从如何停掉 Promise 链说起
  • 带你开发类似Pokemon Go的AR游戏
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (4)logging(日志模块)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)fock函数详解
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .equals()到底是什么意思?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core 连接数据库,通过数据库生成Modell
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net 代码性能 - (1)
  • .NET 分布式技术比较
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [Android] Android ActivityManager
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)