操作系统_处理器管理_编程题
作业调度算法–短作业优先

输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据短作业优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保留2位小数)。

输入的格式:
第1行输入作业的数目,第2行输入作业名字,第3行输入到达的时间,第4行输入服务的时间。

输出的格式:
根据到达的时间由小到大排序,第1行输出作业名字,第2行输出到达的时间,第3行输出服务的时间,第4行输出完成的时间,第5行输出完成的时间,第6行输出带权周转的时间。

输入的样例:
给出了1组输出。如下:

5
A B C D E
0 1 2 3 4
4 3 1 2 4

输出的样例:
给出了相应输出。如下:

作 业 名:A B C D E
到达时间:0 1 2 3 4
服务时间:4 3 1 2 4
完成时间:4 10 5 7 14
周转时间:4 9 3 4 10
带权周转时间:1.00 3.00 3.00 2.00 2.50

代码

#include <bits/stdc++.h>
using namespace std;struct  process{char name[16];double C_T;  double R_T;double F_T;double cir_T;double W_C;int  finished;
}Process[1024];int n;
void Input(){ cin>>n;for(int i=0;i<n;i++){cin>>Process[i].name;Process[i].finished = 0;}for(int i=0;i<n;i++){cin>>Process[i].C_T;}for(int i=0;i<n;i++){cin>>Process[i].R_T;}
}
//输出
void Output(){printf("作 业 名:");for(int i=0;i<n;i++){cout<<Process[i].name;if(i<n-1){printf(" "); }}printf("\n");printf("到达时间:");for(int i=0;i<n;i++){cout<<Process[i].C_T;if(i<n-1){printf(" "); }}printf("\n");printf("服务时间:");for(int i=0;i<n;i++){cout<<Process[i].R_T;if(i<n-1){printf(" "); }}printf("\n");printf("完成时间:");for(int i=0;i<n;i++){cout<<Process[i].F_T; if(i<n-1){printf(" "); }}printf("\n");printf("周转时间:");for(int i=0;i<n;i++){cout<<Process[i].cir_T;if(i<n-1){printf(" "); }}printf("\n");printf("带权周转时间:");for(int i=0;i<n;i++){printf("%.2f",Process[i].W_C);if(i < n-1) {printf(" ");}}}
bool cmp(process p1,process p2){     return p1.C_T<p2.C_T;
}
int main(){Input();sort(Process,Process+n,cmp);int finished_count = 0; int unfinish_pos = 0; double now_time;while(finished_count<n){if(now_time<Process[unfinish_pos].C_T){ now_time = Process[unfinish_pos].C_T; }double min_R_T = INT_MAX; int pos = 0;      for(int i = unfinish_pos;(i < n && now_time >= Process[i].C_T);i++){ if(Process[i].finished == 1) continue ;if(Process[i].R_T < min_R_T){min_R_T = Process[i].R_T;pos = i;}}{now_time += Process[pos].R_T; Process[pos].F_T = now_time;Process[pos].cir_T = now_time - Process[pos].C_T;Process[pos].W_C = Process[pos].cir_T / Process[pos].R_T;Process[pos].finished = 1;if(pos == unfinish_pos){ unfinish_pos = pos + 1;} finished_count++;}}Output();return 0;
}

作业调度算法--短作业优先 操作系统_处理器管理_编程题相关推荐

  1. 7-2 作业调度算法--短作业优先 (30 分)(思路+详解+vector容器做法)Come Baby!!!!!!!!!!!

    一:题目 输入N(N>0)个作业,输入每个作业的名字,到达时间,服务时间,按照短作业优先算法,计算每个作业的完成时间,周转时间,带权周转时间(保留2位小数).输入格式: 第一行输入作业数目,第二 ...

  2. 作业调度算法--高响应比优先 操作系统_处理器管理_编程题

    操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...

  3. 进程调度算法-短作业优先调度算法(SJF)

    基本思想 SJF算法是以作业的长度来计算优先级,作业越短,其优先级越高.作业的长短是作业所要求的运行时间来衡量的. 算法性能评价 面向用户 周转时间 从作业被提交给系统开始,到作业完成为止的这段时间间 ...

  4. 用c语言实现对n个进程采用“短进程优先”算法的进程调度_为什么Linux CFS调度器没有带来惊艳的碾压效果?...

    文章转自公众号"人人都是极客" 但凡懂Linux内核的,都知道Linux内核的CFS进程调度算法,无论是从2.6.23将其初引入时的论文,还是各类源码分析,文章,以及Linux内核 ...

  5. lisp点坐标x轴可以乘除吗_机试编程题

    1.消除重复数字 ''' 题目描述:给定一个正整数,给出消除重复数字以后最大的整数 输入描述:正整数,注意考虑长整数 输出描述:消除重复数字以后的最大整数 输入样例:423234 输出样例:432 ' ...

  6. python语言程序设计2019版第二章课后答案-《python语言程序设计》_第二章编程题...

    2.1 程序: Celsius=eval(input("Enter a degree in Celsius:")) #输入摄氏度的值Celsius fahrenheit =(9/5 ...

  7. python语言程序设计编程题_《python语言程序设计》_第一章编程题

    题目1.1 :显示"welcome to python " 答案:print('welcome to python') 题目1.2:显示"welcome to pytho ...

  8. postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和...

    1005.K次取反后最大化的数组和 每日编程中遇到任何疑问.意见.建议请公众号留言或直接撩Q474356284(备注每日编程) 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引  ...

  9. java 编程题_最新JAVA编程题全集(50题及答案)92862

    <最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...

最新文章

  1. 关于IDEA 的一些常用设置
  2. C++ Primer 5th笔记(chap 15 OOP)构造函数和拷贝控制
  3. mysql读取整张表_mysql 一个表里的信息是读取另一张表来的
  4. dpkg: 处理归档 /var/cache/apt/archives/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb (--unpack)时出错: 无法安装 /lib/
  5. 摩拜免押金;滴滴外卖订单骤降;小米最快本周 IPO | CSDN极客头条
  6. 漫画 | Redis常见面试问题
  7. Monkey Test
  8. RS-274drillIPC-2581三种PCB Gerber文件的观察软件
  9. 排序算法和查找算法的英文名
  10. 探索性与验证性因子分析
  11. mac屏幕分辨率调整:SwitchResX
  12. 用Qt开发Symbian应用程序总结
  13. HTML 页面中点击 a标签实现添加QQ好友功能
  14. 来客推电商|小程序+h5+app商城|含分销拼团砍价等多种引流插件|前后代码开源
  15. 服务器win10虚拟内存设置方法,win10虚拟内存怎么设置最好_win10虚拟内存设置多少好-win7之家...
  16. PHP 接口调用报错 502 Bad Gateway
  17. Blender 粒子系统
  18. E. Replace With the Previous, Minimize
  19. Linux项目之部署lnmp架构
  20. (6)APB总线协议——(官方文档阅读APB3.0)

热门文章

  1. 开关设备对于数据中心正常运行时间很重要!
  2. 服务器 | 种类及区别
  3. 暖通空调系统全面水力平衡解决方案
  4. 我们计划招收300名学员,免费攻读人工智能专业!
  5. java des加密解密_JAVA和c# 之间数据通讯时通过DES进行加密解密
  6. mysql linux selected_MySQL的查询语句--SELECT
  7. Python之selenium:selenium库的简介、安装、使用方法之详细攻略
  8. Py之av:av库的简介、安装、使用方法之详细攻略
  9. Ubuntu之Pycharm:Ubuntu系统内Pycharm安装的图文教程
  10. DL:基于sklearn的加利福尼亚房价数据集实现GD算法