码迷,mamicode.com
首页 > 其他好文 > 详细

Ex 5_32 一台服务器当前有n个等待服务的顾客...第八次作业

时间:2017-12-05 20:13:36      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:客户   string   method   ...   void   display   i++   http   src   

技术分享图片

设第i个客户需要等待的时间为ti,则n个客户需要总的等待时间为技术分享图片

 

,因此,要使T最小,则要使技术分享图片

 

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

技术分享图片
 1 package org.xiu68.ch6.ex8;
 2 
 3 public class Ex5_32 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int[] t=new int[]{5,4,3,2,1};
 8         minServeTime(t);
 9     }
10 
11     public static void minServeTime(int[] t){
12         quitSort(t,0,t.length-1);
13         int waitTime=0;
14         for(int i=0;i<t.length;i++){
15             waitTime+=(t.length-i+1)*t[i];
16         }
17         System.out.println("所需等待的最小时间为: "+waitTime);
18     }
19     
20     //快速排序算法
21     public static void quitSort(int[] r, int i,int j){
22         if(i<j){
23             int middle=partition1(r, i, j);
24             quitSort(r, i, middle-1);
25             quitSort(r, middle+1, j);
26         }
27     }
28         
29     //快速排序第一种划分算法
30     public static int partition1(int[] r,int i,int j){
31         int temp=r[i];
32         while(i<j){
33             while(i<j && r[j]>=temp)    //从j向前找比temp小的值
34                 j--;                
35             
36             if(i<j)
37                 r[i++]=r[j]; //将j指向的值移到i的位置,i往后移一个位置
38             
39             while(i<j && r[i]<temp)        //从i向后找比temp大的值
40                 i++;
41             
42             if(i<j)
43                 r[j--]=r[i];
44         }
45         
46         r[i]=temp;
47         return i;
48     }
49 }
View Code

 

Ex 5_32 一台服务器当前有n个等待服务的顾客...第八次作业

标签:客户   string   method   ...   void   display   i++   http   src   

原文地址:http://www.cnblogs.com/xiu68/p/7988881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!