题目描述:设有N个顾客同时等待一项服务,顾客i需要的服务时间为ti(1<=i<=N)共有S处可以提供此项服
务,应如何安排N个顾客需要的服务次序才能使平均等待时间达到最小?平均等待时间等于N个顾客等待服务的
总时间除以N。
double greedy(int[] serTime, int s)
{
int n = serTime.length; // 顾客数量
double allWaitTime = 0;
// 排序
Arrays.sort(serTime);
// 先处理前s个顾客的服务
for (int i=0; i<s; i++)
{
allWaitTime += serTime[i];
}
// 再处理后n-s个顾客的服务
for (int j=s; j<n; j++)
{
serTime[j] += serTime[j-s];
allWaitTime += serTime[j];
}
return allWaitTime/n;
}