最優(yōu)服務次序問題
設有n個顧客同時等待一項服務。顧客i需要的服務時間為ti, 1≦i ≦n 。共有s處可以提供此服務。應如何安排n個顧客的服務次序才能使平均等待時間達到最小?平均等待時間是n 個顧客等待服務時間的總和除以n。
分析:
為了平均等待時間最少,當然是用時少的服務先執(zhí)行,用時長的后執(zhí)行,排個序就OK了
#include<stdio.h>
#include<stdlib.h> //這個頭文件是關(guān)鍵
#define n 10
int comp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;//升序排列
}
int main()
{
int time=0;//總的等待時間
int i,j;
int t[n]={56,12,1,99,1000,234,33,55,99,812};
qsort(t,n,sizeof(int),comp);
for(i=0;i<n;i++)
{
j=t[i]*(n-i);
time+=j;
}
printf("%f",time*1.0/n);
return 0;
}

運行截圖