算法流水作业调度
#include "sort.h"
#include <iostream>
using namespace std;
class jobtype
{
public:
bool operator <(iobtype a)const
{ return key<a.key;}
int key;
int index;
bool job;
};
int FlowShop(int n,int a[],int b[],int c[])
{
jobtype*d=new jobtype[n];
int i;
for(int i=0;i<n;i++)
{
d[i].key=a[i]>b[i]?b[i]:a[i];
d[i].job=a[i]<=b[i];
d[i].index=i;
}
Sort(d,n);
int j=0,k=n-1;
for(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(i=1;i<n;i++)
{
j+=a[c[i]];
k=j<k?k+b[c[i]]:j+b[c[i]];
}
delete[] d;
return k;
}
int main()
{
const int N=6;
int a[N]={2,5,7,10,5,2},b[N]={3,8,4,11,3,4},c[N];
int h=FlowShop(N,a,b,c);
cout<<"最优调度次序为:\n":;
for(int i=0;i<N;i++)
cout<<c[i]+1<<' ':
cout<<"\n最优调度时间为:"<<h<<endl;
system("pause"):
return 0;
}
不知为何一直报错。。。