




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法实现题4-7 多处最优服务次序问题 问题描述:设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1i n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。编程任务:对于给定的n个顾客需要的服务时间和s的值,编程计算最优服务次序。数据输入:由文件input.txt给出输入数据。第一行有2 个正整数n 和s,表示有n 个顾客且有s 处可以提供顾客需要的服务。接下来的1 行中,有n个正整数,表示n个顾客需要的服务时间。结果输出:将编程计算出的最小平均等待时间输出到文件output.txt。输入示例in
2、put.txt10 256 12 1 99 1000 234 33 55 99 812输出示例output.txt336#include #include using namespace std;typedef struct Jobint ID;int time;Job;typedef struct JobNodeint ID;int time;JobNode *next;JobNode,*pJobNode;typedef struct Headerint s;JobNode *next;Header,pHeader;int main()void QuickSort(Job *job,int
3、left,int right);void outSort(Job *job,int n);void display(Header *M,int m,int n);void solve(Header *head,Job *job,int n,int m);int m,n;coutttn;coutm;Header *head= new Headerm;cout n;Job *job = new Jobn;coutn请按序号输入每个作业调度需要的时间:;for(int i=0;ijobi.time;jobi.ID=i;QuickSort(job,0,n-1);outSort(job,n);solve
4、(head,job,n,m);display(head,m,n);coutendlendl;return 0;int SelectMin(Header *M,int m)int k=0;for(int i=1;im;i+)if(Mi.sMk.s)k=i;return k;void QuickSort(Job *job,int left,int right)int middle=0,i=left,j=right;Job itemp;middle=job(left+right)/2.time;dowhile(jobi.timemiddle)&(imiddle)&(jleft) j-;if(i=j)
5、itemp = jobj;jobj = jobi;jobi = itemp;i+;j-;while(i=j);if(lefti) QuickSort(job,i,right);void display(Header *M,int m,int n)int *total = new intm;int *current= new intm;for(int j=0;jm;j+)totalj=0;for(j=0;jm;j+)currentj=0;double average=0;JobNode *p;for(int i=0;im;i+)coutn第i台机器上处理的工作序号:;if(Mi.next = 0
6、)continue;p=Mi.next;docoutIDtime;totali=totali+currenti;/cout(totalinext;while(p!=0);coutendl;for(j=0;jm;j+)average+=totalj;cout平均时间:average/n;void outSort(Job *job,int n)coutn按工作时间由小到大为:n时间:t;for(int i=0;in;i+)coutsetw(4)jobi.time;coutn序号:t;for(i=0;in;i+)coutsetw(4)jobi.ID;void solve(Header *head,J
7、ob *job,int n,int m)int k;for (int i=0;im&itime = jobi.time;jobnode-ID = jobi.ID;jobnode-next= 0;headi.s = jobnode-time;headi.next=jobnode;if(i=m)for(i;im)for(i;itime = jobi.time;jobnode-ID = jobi.ID;jobnode-next = 0;k = SelectMin(head,m);p = headk.next;headk.s += jobnode-time;while(p-next!=0)p=p-next;p-next=jobnode;(注解:很多人会对这道题中平均等待服务时间不理解,下面我解释一下变做出这道题的具体运算过程.一个顾客的等待服务时间是顾客的等待时间加上这个顾客的服务时间,学过操作系统的同学应该明白进程的周转时间吧, 说的好像只有顾客的等待时间而没有服务时间,这也是悲催的原因吧。下面说下此程序的运算过程:11125131510013041899035345699812Total0=total+current0Current0=current0+812Total0=total+current0Current0=current0+99Tot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年漳州能源社会招聘模拟试卷及答案详解(各地真题)
- 消费行业产品安全与品质保证承诺书5篇
- 科技智能产品迭代服务承诺函3篇
- 2025广东湛江经济技术开发区建设投资发展集团有限公司招聘党群工作部副经理1人考前自测高频考点模拟试题及答案详解(必刷)
- 所有人员生产安全风险控制承诺书(8篇)
- 2025广东江门市蓬江区教师招聘23人模拟试卷及答案详解(必刷)
- 2025年海南澄迈县专职社区工作者招聘以(第4号)考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年阜阳市临泉华源医院导诊人员招聘15人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年4月广东深圳光明区政务服务和数据管理局招聘一般类岗位专干5人模拟试卷及答案详解(全优)
- 2025广东依顿电子科技股份有限公司招聘高级经理岗模拟试卷及参考答案详解1套
- CJJ-T 135-2009 (2023年版) 透水水泥混凝土路面技术规程
- 高教社马工程人力资源管理教学课件unit1
- 因离婚给孩子申请改姓协议书
- 用车登记表(标准模版)
- GB/T 9871-2008硫化橡胶或热塑性橡胶老化性能的测定拉伸应力松弛试验
- GB/T 12190-1990高性能屏蔽室屏蔽效能的测量方法
- 01第一章-稻谷的加工汇总课件
- 六年级LOGO小海龟编程
- 非ST段抬高心肌梗塞指南课件
- 驻足思考-瞬间整理思路并有力表达
- Unit 2 Lesson 3 Running and Fitness 课件 高中英语新北师大版必修第一册(2022-2023学年)
评论
0/150
提交评论