1259 分时系统
来源:互联网 发布:java捕获sql异常 编辑:程序博客网 时间:2024/05/17 00:19
在一个分时系统中,调度进程是最令CPU头疼的一个问题。现在有n个等待执行的进程,每个进程的执行时间为Ti,请你帮助CPU决定进程执行的顺序,使这n个进程的最短等待时间最小。(此系统中的CPU调度是不可中断调度,即一旦决定执行一个进程,就要把一个进程执行完)。
平均等待时间:就绪队列中等待所花时间之和除以进程总数。比如,有三个进程,A,B,C分别需要2ms,3ms和1ms。如果按照ABC的顺序调度则A需要等待0ms,B需要等待2ms,C需要等待5ms。此时的平均等待时间为 (0+2+5)/3。如果按照BAC的顺序调度 则B需要等待0ms,A需要等待3ms,C需要等待5ms,此时的平均等待时间为 (0+3+5)/3。
- 输入
有2n+1行,第一行为一个int值,表示下面有n组测试数据。
下面一共有2n行,每组测试数组有两行:
第一行为m(m<100),表示一共有m个需要调度的进程;
第二行有m个整数,分别表示每个进程完成需要的毫秒数[tex]T_1[/tex],[tex]T_2[/tex],……,[tex]T_m[/tex] ([tex]T_i[/tex]<1000)。- 输出
对于每组测试数据输出两行:
第一行为一种调度顺序,即1到m的一种排列(若两个进程的完成时间相同,则按它们编号从小到大的顺序输出);
第二行为这种调度方案下的平均等待时间(输出结果精确到小数点后两位)。- 样例输入
11056 12 1 99 1000 234 33 55 99 812
- 样例输出
3 2 7 8 1 4 9 6 10 5291.90
此题是明显的贪心
#include<stdio.h>main(){ int i,t,j,k;int a[101];int b[101];int c[101];int temp;int te,number;int temper;double sum;scanf("%d",&number);for (te=1;te<=number;te++){ scanf("%d",&temper);for(i=0;i<101;i++)a[i]=0;k=0;sum=0;for(i=0;i<temper;i++){ scanf("%d",&a[i]);b[k++]=a[i]; }for(i=0;i<temper;i++) for(j=i+1;j<temper;j++) { if(a[i]>a[j]) { temp=a[j]; a[j]=a[i]; a[i]=temp; } }for(k=0;k<temper;k++){for(j=0;j<temper;j++)if(b[j]==a[k]){c[k]=j+1;b[j]=-1;j=0;break;}}for(i=0;i<temper-1;i++)printf("%d ",c[i]);printf("%d\n",c[temper-1]);for(j=0;j<temper-1;j++){ for(i=0;i<=j;i++)sum+=a[i];}printf("%.2lf\n",sum/temper);}}
- 1259 分时系统
- 分时系统
- 分时系统
- 分时系统
- 分时系统与实时系统
- 实时系统跟分时系统
- 实时系统与分时系统
- 分时系统的详细解释
- 批处理系统,分时系统,实时系统
- 实时系统与分时系统简单理解
- 浅析分时系统和实时系统
- 批处理系统和分时系统的区别
- 嵌入式系统分时任务调度算法实现
- Unix 分时系统的演化[资料]
- 分时租赁系统技术服务商宝典
- 多道批处理系统、分时系统和实时系统
- 批处理系统、分时处理系统、实时处理系统简介
- 分时系统与多道程序系统的区别
- js与jquery获得页面大小、滚动条位置、元素位置
- jQuery 对话框(dialog)显示在屏幕中央
- 创业者如何打动投资者——创业态度决定一切
- 3. A bad workmen always blames his tools. 不会撑船怪河弯
- 材料库存天数的计算方法
- 1259 分时系统
- 1260 文法语言
- jQuery获取Select选择的Text和 Value
- SQL联合查询中的关键语法
- 1261 二十四点游戏
- char 转char*产生乱码
- android 访问/assets 和/res目录下文件的方法
- cocos2d-iPhone简介
- 1262 "A+B"