CPP

C++贪婪法实例[多机调度问题]

#include <iostream.h>
int s[100],hw[100],b[100][100],c[100];
void diaodu(int m,int z)
{
int k=0,i,l=0,flag=0,j;
for(i=1;i<z;i++)
  if(s[k]>s) k=i;
for(i=1;i<m;i++)
  if(hw[l]<hw) l=i;
   s[k]+=hw[l];
b[k][c[k]]+=l+1;
c[k]++;
hw[l]=0;
for(i=0;i<m;i++)
  if(hw>0) flag++;
if(flag>0) diaodu(m,z);
else
{
  for(j=0;j<z;j++)
  {
   cout<<'s'<<j<<":";
   for(i=0;i<c[j];i++)
    cout<<b[j]<<"号作业    ";
   cout<<endl;
  }
}
}
void main()
{
int n,i,m;
cout<<"请输入机器数:";
cin>>m;
for(i=0;i<m;i++)
{
  s=0;
  c=0;
}
cout<<"请输入作业个数:";
cin>>n;
for(i=0;i<n;i++)
{
  cout<<"请输入作业使用时间"<<i+1<<":";
  cin>>hw;
}
diaodu(n,m);
}