设第i个客户需要等待的时间为ti,则n个客户需要总的等待时间为

,因此,要使T最小,则要使

即可,所以,对所有的ti按升序进行排序和服务将得到最小的等待时间。

 package org.xiu68.ch6.ex8;

 public class Ex5_32 {

     public static void main(String[] args) {
// TODO Auto-generated method stub
int[] t=new int[]{5,4,3,2,1};
minServeTime(t);
} public static void minServeTime(int[] t){
quitSort(t,0,t.length-1);
int waitTime=0;
for(int i=0;i<t.length;i++){
waitTime+=(t.length-i+1)*t[i];
}
System.out.println("所需等待的最小时间为: "+waitTime);
} //快速排序算法
public static void quitSort(int[] r, int i,int j){
if(i<j){
int middle=partition1(r, i, j);
quitSort(r, i, middle-1);
quitSort(r, middle+1, j);
}
} //快速排序第一种划分算法
public static int partition1(int[] r,int i,int j){
int temp=r[i];
while(i<j){
while(i<j && r[j]>=temp) //从j向前找比temp小的值
j--; if(i<j)
r[i++]=r[j]; //将j指向的值移到i的位置,i往后移一个位置 while(i<j && r[i]<temp) //从i向后找比temp大的值
i++; if(i<j)
r[j--]=r[i];
} r[i]=temp;
return i;
}
}

最新文章

  1. url带#号,微信授权,微信分享那些坑
  2. SuperIndicator 专做轮播图库,没有之一,支持轮播图无限循环
  3. jQuery找兄弟系列next(),nextAll(),nextUntil(),prev(),prevAll(),prevUntil(),siblings()
  4. 【ElasticSearch】
  5. RTP
  6. LeetCode (85): Maximal Rectangle [含84题分析]
  7. Could not fetch https://api.github.com/repos/RobinHerbots/jquery
  8. 一行一行分析JQ源码学习笔记-03
  9. 由Find All References引发的思考。,
  10. 转:【Java集合源码剖析】Vector源码剖析
  11. explorer.exe 该文件没有与之关联的程序来执行该操作
  12. struts2 令牌 实现源代码 JSP
  13. Java_Runtime&amp;Process&amp;ProcessBuilder
  14. php 获取 两个时间戳之间 相隔 【多少年】 【 多少个月】 【多少天】 【 多少个小时】 【多少分】【 多少秒 】
  15. Xamarin.Forms踩坑集锦(持续更新)
  16. 关于Newtonsoft.Json,LINQ to JSON的一个小demo
  17. centos 6.9修改系统默认字符集
  18. WebSocketTest 异步通讯,实时返回数据
  19. 【CF717G】Underfail 费用流
  20. KiCad 国内下载镜像收集

热门文章

  1. hdu4549_M斐波那契数列 解题报告
  2. powerdesigner 字段添加注释和默认值
  3. winreg模块的使用
  4. django 执行 python manage.py makemigrations 报错
  5. nginx的负载均衡配置,常用策略
  6. sublime 格式化代码
  7. javascript 利用冒泡机制显示与隐藏模态框
  8. go switch
  9. python 创建实例--待完善
  10. 10-SQL Server 2008 R2安装步骤