public static int flowShop(int []a,int []b,int []c) {
int n=a.length;
Element []d = new Element[n];
for (int i = 0; i < n; i++) {
int key=a[i]>b[i]?b[i]:a[i];
boolean job=a[i]<=b[i];
d[i]=new Element(key, i, job);
}
MergeSort.mergeSort(d);
int j=0,k=n-1;
for(int i=0;i<n;i++) {
if (d[i].job) {
c[j++]=d[i].index;
}
else {
c[k--]=d[i].index;
}
}
j=a[c[0]];
k=j+b[c[0]];
for(int i=1;i<n;i++) {
j+=a[c[i]];
k=j<k?k+b[c[i]]:j+b[c[i]];
}
return k;
}
算法分析与设计——动态规划流水作业调度Johnson法则java
最新推荐文章于 2022-04-13 00:09:36 发布