美文网首页
贪心算法最优服务次序

贪心算法最优服务次序

作者: Super_邓帅 | 来源:发表于2016-12-31 19:07 被阅读0次


    最优服务次序问题

    设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。

    分析:

    为了平均等待时间最少,当然是用时少的服务先执行,用时长的后执行,排个序就OK了

    #include<stdio.h>
    #include<stdlib.h>       //这个头文件是关键
    #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;
    }
    
    运行截图

    相关文章

      网友评论

          本文标题:贪心算法最优服务次序

          本文链接:https://www.haomeiwen.com/subject/arcbvttx.html