Ex 5_32 一台服务器当前有n个等待服务的顾客...第八次作业
Posted 薰衣草
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ex 5_32 一台服务器当前有n个等待服务的顾客...第八次作业相关的知识,希望对你有一定的参考价值。
设第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 }
以上是关于Ex 5_32 一台服务器当前有n个等待服务的顾客...第八次作业的主要内容,如果未能解决你的问题,请参考以下文章