多机调度问题
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define MACHINE 5
#define WORK 10
struct WT{
int index;
int time;
};
struct MT {
int index;
};
int cmp(WT a,WT b)
{
return a.time>b.time;
}
void main()
{
WT a[WORK];
int t[WORK]={41,67,34,10,69,24,78,58,62,64};
int d[MACHINE];
MT S[5];
int e;
for (int i = 0; i < WORK; i++)
{
a[i].index = i + 1;
a[i].time = t[i];
}
sort(a,a+10,cmp);
for (int i = 0; i < 10; i++)
printf("%2d-%d\n", a[i].index, a[i].time);
for (int i = 0; i < MACHINE; i++)
{
S[i].index = a[i].index ;
d[i] = a[i].time;
printf("第%d号机器处理J%d号作业\n", i + 1, S[i].index);
}
e = d[0];
for (int i = 5; i < WORK; i++)
{
int k = 0;
for (int j = 0; j < MACHINE; j++)
{
if (d[k] > d[j])
k = j;
if (e < d[j])
e = d[j];
}
d[k] = d[k] + a[i].time;
S[k].index = a[i].index;
printf("第%d号机器处理J%d号作业\n", k + 1, S[k].index);
}
printf("最小作业时间%d\n", e);
}