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

 更新时间:2017年08月01日 14:10:41   作者:姚_攀  
这篇文章主要介绍了数据结构 双机调度问题的实例详解的相关资料,双机调度问题,又称独立任务最优调度:用两台处理机A和B处理n个作业的实例,需要的朋友可以参考下

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

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 <iostream>
#include <stdlib.h>
using namespace std;

int max(int a,int b){
   return a>b?a:b;
}

int min(int a,int b){
  return a<b?a:b;
}

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<<"任务"<<i<<"分配给B做"<<endl;
   }else{
    sum_a+=a[i-1];
    cout<<"任务"<<i<<"分配给A做"<<endl;
   }
  }
  cout<<"总时间是:"<<T<<endl;
}

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

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

相关文章

  • C语言中读写交替时出现的问题分析

    C语言中读写交替时出现的问题分析

    读写命令交替,一定要使用fseek重新定位,否则出现输入显示混乱,这篇文章主要介绍了C语言中读写交替时出现的问题分析,需要的朋友可以参考下
    2022-12-12
  • C++实现学校运动会管理系统

    C++实现学校运动会管理系统

    这篇文章主要为大家详细介绍了C++实现学校运动会管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • C语言运算符的重载详解

    C语言运算符的重载详解

    大家好,本篇文章主要讲的是C语言运算符的重载详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • C++中几种将整数转换成二进制输出的方法总结

    C++中几种将整数转换成二进制输出的方法总结

    下面小编就为大家带来一篇C++中几种将整数转换成二进制输出的方法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 一篇文章带你了解C++语法基础--字符串

    一篇文章带你了解C++语法基础--字符串

    这篇文章主要介绍了C++常用字符串分割方法实例汇总,包括了strtok函数、STL、Boost等常用的各类字符串分割方法,非常具有实用价值,需要的朋友可以参考下
    2021-08-08
  • C语言求两个正整数的最大公约数示例代码

    C语言求两个正整数的最大公约数示例代码

    在C语言中求两个数的最大公约数是学习循环语句的非常经典的问题,下面这篇文章主要给大家介绍了关于C语言求两个正整数的最大公约数的相关资料,需要的朋友可以参考下
    2021-12-12
  • C++代码实现五子棋小游戏

    C++代码实现五子棋小游戏

    这篇文章主要为大家详细介绍了C++代码实现五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C++中汉字字符串的截取

    C++中汉字字符串的截取

    C++中汉字字符串的截取,需要的朋友可以参考一下
    2013-05-05
  • C语言数据结构之双向循环链表的实例

    C语言数据结构之双向循环链表的实例

    这篇文章主要介绍了C语言数据结构之双向循环链表的实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • Qt实现小功能之复杂抽屉效果详解

    Qt实现小功能之复杂抽屉效果详解

    在Qt自带的控件中,也存在抽屉控件:QToolBar。但是,该控件有个缺点:一次只能展开一个抽屉信息,无法实现多个展开。所以本文将自定义实现复杂抽屉效果,需要的可以参考一下
    2022-10-10

最新评论