当前位置:文档之家› java实现贪心算法中的多机调度

java实现贪心算法中的多机调度

try {
System.out.println("请输入机器个数:");
int jiqigeshu=Integer.parseInt(br.readLine());
System.out.println("请输入作业个数:");
int zuoyegeshu=Integer.parseInt(br.readLine());
Jiqi jiqi;
Zuoye zuoye;
for(int i=0;i<jiqigeshu;i++)
{
jiqi=new Jiqi(i+1);
jiqiManger.addjiqi(jiqi);
}
for(int i=0;i<zuoyegeshu;i++)
{
int haoshi;
Scanner sc=new Scanner(System.in);
}
public int getId()
{
return this.id;
}
public void addzuoye(Zuoye zuoye)
{
this.al.add(zuoye);
this.zongshaoshi+=zuoye.getHaoshi();
}
public ArrayList<Zuoye> getZuoye()
{
return this.al;
}
public int getZonghaoshi()
{
return this.zongshaoshi;
}
}
class ZuoyeManger{
ArrayList<Zuoye> zuoye=new ArrayList<Zuoye>();
public void addzuoye(Zuoye zuoye)
Start start=new Start(jiqigeshu, zuoyegeshu);//指明有几台机器以及几道作业
start.show();//显示每台机器都有哪些作业
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
{
al=jiqiManger.getjiqi(i+1).getZuoye();
System.out.print(i+1+"号机器包含的作业有:{");
for(int j=0;j<al.size();j++)
{
if(j==(al.size()-1))
System.out.println(al.get(j).getId()+"号作业}");
{
this.zuoye.add(zuoye);
}
public void paixu()
{
Object[] temp=this.zuoye.toArray();
for(int i=0;i<temp.length-1;i++)
for(int j=i+1;j<temp.length;j++)
{
if(((Zuoye)temp[i]).getHaoshi()<((Zuoye)temp[j]).getHaoshi())
public class Duojidiaodu {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
{
return this.zuoye.get(index);
}
}
class Zuoye{
private int id;
private int haoshi;
public Zuoye(int id , int haoshi ) {
this.id=id;
this.haoshi=haoshi;
}
public int getHaoshi()
}finally{
if(br!=null)
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class JiqiManger{
ArrayList<Jiqi> al=new ArrayList<Jiqi>();
public void addjiqi(Jiqi jiqi)
{
this.al.add(jiqi);
}
public Jiqi getjiqi(int id)
{
for(int i=0;i<this.al.size();i++)
{
if(this.al.get(i).getId()==id)
{
return this.al.get(i);
}
private void fenfa()
{
int index=0;
for(int i=0;i<this.jiqigeshu;i++)
{
jiqiManger.getjiqi(i+1).addzuoye(zuoyeManger.getZuoye(index++));
}
while(index<this.zuoyegeshu)
}ቤተ መጻሕፍቲ ባይዱ
}
return null;
}
}
class Jiqi{
private int id;
private ArrayList<Zuoye> al;
private int zongshaoshi;
public Jiqi(int id) {
this.id=id;
al=new ArrayList<Zuoye>();
package com.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;
else
System.out.print(al.get(j).getId()+"号作业,");
}
}
}
}
{
min=jiqiManger.getjiqi(i+1).getZonghaoshi();
minindex=i+1;
}
}
return jiqiManger.getjiqi(minindex);
}
public void show(){
ArrayList<Zuoye> al=null;
for(int i=0;i<this.jiqigeshu;i++)
{
if(this.jiqiManger.getjiqi(1)==null)
return null;
int min=jiqiManger.getjiqi(1).getZonghaoshi();
int minindex=1;
for(int i=1;i<this.jiqigeshu;i++)
{
if(jiqiManger.getjiqi(i+1).getZonghaoshi()<min)
{
Zuoye zuoye=(Zuoye)temp[i];
temp[i]=temp[j];
temp[j]=zuoye;
}
}
this.zuoye.clear();
for(int i=0;i<temp.length;i++)
this.zuoye.add(((Zuoye)temp[i]));
}
public Zuoye getZuoye(int index)
public Start(int jiqigeshu , int zuoyegeshu) {
jiqiManger=new JiqiManger();
zuoyeManger=new ZuoyeManger();
this.jiqigeshu=jiqigeshu;
this.zuoyegeshu=zuoyegeshu;
System.out.println("请输入第"+(i+1)+"号作业的时间:");
haoshi=sc.nextInt();
zuoye=new Zuoye(i+1, haoshi);
zuoyeManger.addzuoye(zuoye);
}
this.zuoyeManger.paixu();
this.fenfa();
{
if(this.getJiqi()==null)
{
System.out.println("对不起,没有机器可以分发作业!");
break;
}
this.getJiqi().addzuoye(zuoyeManger.getZuoye(index++));
相关主题