(list1);//最优调度顺序
list.addAll(list2);
int suma = list.get(0).getFirst();
int sumb =list.get(0).getFirst();
for(int i=1;isumb)// suma>sumb,说明有等待时间
sumb = suma; //sumb = suma-sumb+sumb;(等待时间+M2执行时间)
}
sumb += list.get(list.size()-1).getSecond();//循环里少加了最后一个作业在M2执行的时间,需要加上
System.out.print("原顺序为:[");
for(Node n : nodes)
System.out.print("{"+n.getFirst()+","+n.getSecond()+"}");
System.out.println("]");
System.out.print("N1:[");
for(Node n : list1)
System.out.print(n);
System.out.println("]");
System.out.print("N2:[");
for(Node n : list2)
System.out.print(n);
System.out.println("]");
System.out.print("最优调度执行顺序为:[");
for(Node n : list)
System.out.print(n);
System.out.println("]");
System.out.println("最优调度时间为:"+sumb);
}
}
//用来保存键值对
class Node {
private int first;
private int second;
public Node(int first, int second) {
this.first = first;
this.second = second;
}
public int getFirst() {
return first;
}
public void setFirst(int first) {
this.first = first;
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
this.second = second;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{"+this.first+","+this.second+"}";
}
}