java双机调度_数据结构 双机调度问题的实例详解

数据结构 双机调度问题的实例详解

1.问题描述

双机调度问题,又称独立任务最优调度:用两台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是a[i],若由机器B来处理,则所需要的时间是b[i]。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总的时间)。

研究一个实例:n=6, a = {2, 5, 7, 10, 5, 2}, b = {3, 8, 4, 11, 3, 4}.

2.代码

#include

#include

using namespace std;

int max(int a,int b){

return a>b?a:b;

}

int min(int a,int b){

return a

}

int main(){

int a[6]={2,5,7,10,5,2};

int b[6]={3,8,4,11,3,4};

int sum_a=0,sum_b=0,T=0,n=6;

for (int i = 1; i <=n; i++)

{

T=max(T,min(sum_a+a[i-1],sum_b+b[i-1]));

if(sum_a+a[i-1]>sum_b+b[i-1]){

sum_b+=b[i-1];

cout<

}else{

sum_a+=a[i-1];

cout<

}

}

cout<

}

3.结果

yaopans-MacBook-Pro:algorithm yaopan$ g++ exercise5-2.cpp

yaopans-MacBook-Pro:algorithm yaopan$ ./a.out

任务1分配给A做

任务2分配给A做

任务3分配给B做

任务4分配给B做

任务5分配给A做

任务6分配给A做

总时间是:15

以上就是数据结构双机调度的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值