双机调度问题

来源:互联网 发布:模拟约瑟夫环 java 编辑:程序博客网 时间:2024/06/05 08:58

题意:用两台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是ia,若由机器B来处理,则所需要的时间是ib。现在要求每个作业只能由一台机器处理,每台机器都不能同时处理两个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短。
思路:动规解决。
代码:

    public void DisPath(int []a , int[] b ,int n){        int asum = 0 ,bsum = 0,time1 = 0,time2 = 0,finaltime = 0;        for(int i = 1 ; i <= n ; i++){            if(asum + a[i-1] > bsum + b[i-1]){                bsum = bsum + b[i-1];                time1 = bsum;                System.out.println("作业"+i+"交给B处理");            }else{                asum = asum + a[i-1];                time2 = asum;                System.out.println("作业"+i+"交给A处理");            }        }        finaltime = Math.max(time1, time2);        System.out.println("总处理时间是:"+finaltime);    }
0 1