思路:
t[i] 表示第i台服务器完成一项任务所需要的时间,m台服务器,n个任务,实际上就是尽量是某台机器完成任务所花费的时间最短。
public int estimateProcessTime(int[] t , int m , int n){ //每台服务器的任务数数组 int[] numOfTask = new int[m]; int min = -1; //开始尝试分配任务 for(int i = 0; i < n ; i++){ min = (numOfTask[0] + 1) * t[0]; int index = 0; for(int j = 1; j < m ; j++){ int time = (numOfTask[j] + 1) * t[j]; if(time < min){ index = j; min = time; } } numOfTask[index]++; } return min; }
原文:http://blog.csdn.net/cow__sky/article/details/39234779