多机调度问题
问题表述为:假设工厂有M台机器,现在被分配了N个任务,每个任务都有其自己的规模,即需要花费的时间成本,问如何能充分利用M台机器,在最短时间内完成这一系列任务集合。
实现思路为将任务集合按需要花费的时间成本进行从大到小的排序,然后再从头到尾的开始分配任务,把任务依次分配给目前累计需要工作时间最短的机器。由于要最后打印结果,所以创建了一个任务对象方便之后的输出结果即检验,定义了一个Comparator从而进行列表的排序。
话不多说,直接上 bug
。
package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class WorkManager {
public static int number(Object result[][]) {
int temp = 0;
for(int i = 0;i < result.length - 1;i++) {
if((int)result[i + 1][0] < (int)result[i][0]) {
temp = i + 1;
}
}
return temp;
}
public static void workManager() {
List<Work> list = new ArrayList<Wor