在九江找工作到哪:数据结构高手请进!!!

来源:百度文库 编辑:高校问答 时间:2024/05/09 06:13:00
8 作业调度(排序的应用问题) (5人)
问题描述:
假设计算机只有一个CPU,在任何时候只能运行一个作业,并且作业的执行是非抢占式的(作业一旦被调度后占有CPU就一直执行完成)。
作为例子,现假设有四个作业,如下表所示。

作业次序 运行所需时间

Job1 15 Job1 Job2 Job3 Job4 (图1)
Job2 8 0 15 23 26 36
Job3 3 Job1 Job2 Job3 Job4 (图2)
Job4 10 0 3 11 21 36

对于先来先服务的调度策略,各个作业的开始时间、完成时间如图1所示,则四个作业的平均完成时间为:(15+23+26+36)/4=25
对于最短服务时间优先的调度策略,各个作业的开始时间、完成时间如图2所示,则四个作业的平均完成时间为:(3+11+21+36)/4=17.75
现设有n个作业,每个作业所需的运行时间为Ti,(i∈[1,n],n∈[1,50000]) ,作业序号和相应的所需运行时间保存在数据文件中。
实现要求:
⑴ 将作业序号和运行所需时间构成数据记录,实现数据记录插入到数据文件的最后,数据记录的输入以0,0作为结束;
⑵ 按最短服务时间优先的调度策略,输出各个作业的开始时间、完成时间;
⑶ 计算所有作业的平均完成时间。

请问这题要用到什么函数?整体思路是什么?最好能将程序写出来!!!
作业次序 运行所需时间

Job1 15
Job2 8
Job3 3
Job4 10

Job1 Job2 Job3 Job4 (图1)
0 15 23 26 36

Job1 Job2 Job3 Job4 (图2)
0 3 11 21 36

是分支定界,不会的话用穷举