题目为:
假定有7个独立作业,所需处理时间分别为{2,14,4,16,6,5,3},由三台机器M1,M2,M3加工。按照贪心算法产生的作业调度,求处理机所需要的最短作业时间?
思路:本题目可以分为两种情况进行考虑:
(1)机器数大于作业数:即用作业数数量的机器同时进行工作,而作业时间最长的那个即为处理机所需要的最短作业时间。
(2)机器数小于作业数:用for循环总是找出空闲的机器,然后将机器上的作业时间进行累加,最后累加的时间最长的即为所求处理机所需最短作业时间。
C语言代码实现如下:
//free[100] ={0} 代表处理机空闲的台数
#include <stdio.h>
int main()
{
int t,n,m,tim[10000];
printf("请输入需要执行的数据组数:\n");
scanf("%d",&t);
while(t--)
{
int i,j,free[100]={0},max,k,t,min,p;
printf("请输入作业数和机器数:\n");
scanf("%d%d",&n,&m);
printf("请输入作业执行时间的相关数据:\n");
for(i=0;i<n;i++)
scanf("%d",&