贪心算法多机调度问题C参考程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

}

相关文档
最新文档