流水作业调度Java代码
更新时间:2023-08-13 12:05:01 阅读量: IT计算机 文档下载
import javax.swing.*;
import ng.*;
import java.io.*;
public class FlowS{
static class Elememt
{
int key;
int index;
boolean job;
private Elememt(int kk,int ii,boolean jj)
{
key=kk;
index=ii;
job=jj;
}
}
public static int flowShop(int []a,int []b,int []c) //a[]放的是N1 b[]放的是N2
{ //c[]放的是作业排好序列的顺序
int n=a.length;
Elememt []d=new Elememt[n];
for(int i=0;i<n;i++){
int key=a[i]>=b[i]? b[i]:a[i]; //按johnson 法则分别取对应的b[i]或 a[i]值作为关键字
boolean job=a[i]<b[i]; //给符合条件a[i]<b[i]的放入N1子集大标记true d[i]=new Elememt(key,i,job);
System.out.println("d["+i+"] "+key+" "+i+" "+job);
}
mergeSort(d); // 对数组d 按关键字升序进行排序
System.out.println();
System.out.println("输出排序后的相关值");
for(int i=0;i<n;i++) //输出排序结果
System.out.println("d["+i+"] "+d[i].key+" "+d[i].index+" "+d[i].job);
int j=0,k=n-1;
for(int i=0;i<n;i++){
if(d[i].job)c[j++]=d[i].index; //将排过序的数组d,取其中作业序号
else c[k--]=d[i].index; //属于N1的从前面进入,属于N2的从后面进入
} //从而实现了N1的非减排序,N2 的非增排序
j=a[c[0]];
k=j+b[c[0]];
for(int i=1;i<n;i++){ //计算最优总加工时间
j+=a[c[i]];
k=j<k? k+b[c[i]]:j+b[c[i]];
}
return k;
}
public static void mergeSort(Elememt[] e)
{
int k=e.length-1;
Elememt a;
for(int i=0;i<k;i++)
for(int j=i+1;j<=k;j++)
if(e[i].key>e[j].key){
a=e[i];
e[i]=e[j];
e[j]=a;
}
}
public static void main(String args[])
{
//int []x={2,4,3,6,1};
//int []y={5,2,3,1,7};
String s=JOptionPane.showInputDialog(null,"输入作业个数n的大小:",
"0-1背包问题",JOptionPane.QUESTION_MESSAGE);
int n=Integer.parseInt(s);
System.out.println("输出n的值:"+n);
System.out.println();
//构建数组
int []x=new int[n];
//数组赋值及输出
System.out.println("n个作业的ai值数组:");
for(int i=0;i<=n-1;i++){
String s1=JOptionPane.showInputDialog(null,"输入v["+i+"]:", "0-1背包问题",JOptionPane.QUESTION_MESSAGE);
x[i]=Integer.parseInt(s1);
System.out.print(x[i]+" ");
}
System.out.println();
int []y=new int[n];
//数组赋值及输出
System.out.println( );
System.out.println("n个作业的bi值数组:");
for(int i=0;i<=n-1;i++){
String s1=JOptionPane.showInputDialog(null,"输入w["+i+"]:", "0-1背包问题",JOptionPane.QUESTION_MESSAGE);
y[i]=Integer.parseInt(s1);
System.out.print(y[i]+" ");
}
System.out.println();
//int n=x.length;
int []z=new int[n];
System.out.println();
System.out.println("完成作业所需最短时间 "+flowShop(x,y,z)); System.out.println();
System.out.println("作业编号自0开始,作业执行顺序为 "); for(int j=0;j<n;j++)
System.out.print(" "+z[j]);
System.out.println();
}
}
正在阅读:
流水作业调度Java代码08-13
弹性力学基本概念和考点汇总05-30
未来电驱动主力 - 轮毂电机驱动技术解析 - 图文12-21
2022年甘肃高考235分能报什么大学 235分能上哪些院校03-29
浅谈墨锭 - 图文02-29
中考一轮复习学案 第十九讲 材料作文 解析(全国版)04-25
公制与英制换算表(适用于阀门)05-26
超声复习题(新桥)06-09
- 供应商绩效评价考核程序
- 美国加州水资源开发管理历史与现状的启示
- 供应商主数据最终用户培训教材
- 交通安全科普体验教室施工方案
- 井架安装顺序
- 会员积分制度
- 互联网对美容连锁企业的推动作用
- 互联网发展先驱聚首香港
- 公司文档管理规则
- 机电一体化系统设计基础作业、、、参考答案
- 如何选择BI可视化工具
- 互联网产品经理必备文档技巧
- 居家装修风水的布置_家庭风水布局详解
- 全省基础教育信息化应用与发展情况调查问卷
- 中国石油--计算机网络应用基础第三阶段在线作业
- 【知识管理专题系列之五十八】知识管理中如何实现“场景化协同”
- 网络推广方案
- 中国石油--计算机网络应用基础第二阶段在线作业
- 汽车检测与维修技术专业人才培养方案
- 详解胎儿颈透明层
- 流水作业
- 调度
- 代码
- Java
- 新产品导入流程
- 医院后勤工作制度、职责
- 20100414期望和方差
- 如何培养小学生学习数学的兴趣
- 【原创】庆祝唐僧取经归来大会纪实
- 罗马书注释
- 机电工程管理与实务真题2008学年
- WinQSB运输问题练习一二
- 11广州市余泥渣土管理条例(1999101)
- 实习申请理由怎么写
- 《工程勘察设计收费管理规定》计价格【2002】10号(废止)
- 2013-2014学年北师大七年级下阶段性质量检测数学试卷
- 黄大铁路应急预案汇编
- 人力资源部组织结构
- 外贸流程细节总结
- 创新工厂招聘
- 【推荐下载】5月份研究生预备党员转正思想汇报范文word版本 (7页)
- 2011-3思想汇报
- 2012年机电运输安全技术规范
- 厦门市音乐学校 厦门大学附属音乐学校2011年招生简章