欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

贪心算法--多处最优服务次序问题

发布时间:2025/6/15 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 贪心算法--多处最优服务次序问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

       问题描述:
       设有n 个顾客同时等待一项服务。每个顾客需要服务一定时间。共有s 处可以
       提供此项服务。应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时
       间是n个顾客等待服务时间的总和除以n。
       编程任务:
       对于给定的n个顾客需要的服务时间和s的值,编程计算最优服务次序,先看下代码:

#include<stdio.h> #include<algorithm> using namespace std;#define n 10 //顾客数 #define s 2 //服务窗口数int main() {//总共需要服务10位顾客,每位顾客需要服务的时间存在数组里int a[n] = {56,12,1,99,1000,234,33,55,99,812};int i;int sum = 0;int sub[s] = {0}; //服务窗口sort(a,a + n);for(i = 0;i < n;i ++){sub[i % s] += a[i];sum += sub[i % s];}printf("%.2f",sum * 1.0 / n);return 0; }

  运行打印:336.00   

 看个图:

0号窗口服务1,33,56....

1号窗口服务12,55,99...

对应0号窗口,当服务1时,后面几位顾客需要等待的时间就是前面几位顾客需要的服务时间的累加,前面有多少顾客就需要累加多少次。1号窗口也是一样。

 

学习地址:https://blog.csdn.net/sdz20172133/article/details/79223628

                  https://github.com/jingong/Algorithm/blob/master/4.贪心算法/多处最优服务次序问题.txt

总结

以上是生活随笔为你收集整理的贪心算法--多处最优服务次序问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。