贪心算法多机调度问题C参考程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#define N7 //作业数
#define M 3 //机器数
int s[M] = {0,0,0}; //每台机器当前已分配的作业总耗时
int main()
{ int time[N] = {16,14,6,5,4,3,2}; //处理时间按从大到小排序int maxtime;
maxtime = setwork(time, N);
printf("最多耗费时间%d。", maxtime);
system("PAUSE");
}
int setwork(int t[], int n) //机器数小于待分配作业数
{ int i;
int mi = 0;
for( i=0; i { mi = min(M); //处理作业时间和最小的机器号 printf("%d, 时间和最小的机器号为%d.时间和为%d:\n" , i, mi, s[mi] ); s[mi] = s[mi]+t[i]; } int ma = max( s, M); return ma; } int min(int m ) //求出目前处理作业的时间和最小的机器号 { int mi = 0; int i; for(i=1; i if( s[mi] > s[i] ) mi = i; return mi; } int max(int s[], int num) //求最终结果(最长处理时间) { int max = s[0]; int i; for(i=1;i if(max < s[i]) max = s[i]; return max; }