问题描述:设有n个顾客同时等待一个服务,顾客i需要的服务时间为ti(1<=i<=n)。应如何安排n个顾客的服务次序才能使平均等待时间最短达到最小?平均等待时间是n个顾客等待服务的时间总和除以n。
算法设计:对于给定的n个顾客需要的服务时间,计算最优的服务次序。
输入数据:第一行是整数n,表示n个顾客。接下来的一行中,有n个整数表示n个顾客的服务时间。
输出结果:将计算的最小平均等待时间输出。
input output
10 532.00
56 12 1 99 1000 234 33 55 99 812
代码:
package og;
import java.util.*;
public class one {
public static void main(String ags[])
{
int n;
int i,j,k;
double sum=0;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
int []a=new int[n];
for(i=0;i<n;i++)
a[i]=sc.nextInt();
Arrays.sort(a) ; //对数组进行排序
for(j=0;j<n;j++)
{
for(k=0;k<=j;k++)
{
sum=sum+a[k];
}
}
System.out.println(sum/n);
}
}
运行截图: