对于流线作业问题
假设有n个作业和m台机器,每台机器每一刻只能做一个作业,每个作业完成需不同的时间。
问题:编写一个程序使得n个作业在m台机器上工作时间最少?
分析:
分两种情况:
1.n<=m:n个作业直接分配给m台机器
2.n>m:将n中作业中的m个时间最长的分配给m台机器,然后依次选其完成时间最早的机器继续执行剩余的作业,直到所有作业完成即可。
具体代码如下:
#include
int t[200],d[200]; /*定义全局变量t,d*/
struct job{ /*定义结构体数组*/
int h;
int t;
}job[200],s[200];
void sort (int n){ /*定义函数sort()*/
int i;
for(i=1;i<=n;i++)
s[i]=job[i];
for(i=1;i<=n;i++) /*冒泡排序*/
for(int j=i+1;j<=n;j++){
if(s[i].t
int k=s[i].t;
int w=s[i].h;
s[i].t=s[j].t;
s[i].h=s[j].h;
s[j].t=k;
s[j].h=w;
}
}
}