zoukankan      html  css  js  c++  java
  • 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 }
    View Code
  • 相关阅读:
    Python GIL-------全局解释器锁
    JavaScript简介
    MongoDB查询
    创建、更新和删除文档
    MongoDB基础知识
    Linux安装mysql
    函数、变量、参数
    循环语句
    控制语句
    集合
  • 原文地址:https://www.cnblogs.com/xiu68/p/7988881.html
Copyright © 2011-2022 走看看