资源描述
短作业优先调度算法
#include<iostream.h>
int time=0;//全局变量
int a[5]={1,2,3,4,5};//作业到达时间
int b[5]={5,4,3,2,1};//作业执行时间
int min(int x[],int size)
{
int mark=1;
for(int i=0;i<size;i++)
if(x[i]<x[mark]&&x[i]!=0)
mark=i;
return mark;
}
void now_time(int &t,int i)//t为引用
{
cout<<"作业"<<i+1<<"被调度!"<<endl;
t=t+a[i]+b[i];
cout<<"完成时间为:"<<time<<endl;
b[i]=0;
}
void main()
{ int l=min(a,5);
now_time(time,l);//下面也可写成do while循环格式
int mark_1=0;
for(int j=0;j<4;j++)//还要查找四次
{
for(int i=0;i<5;i++)
if(a[i]<time&&b[i]!=0)
{
mark_1=i;
}//mark_1=4
if(mark_1==0)
now_time(time,i);
if(mark_1!=0)
{
int y=min(b,mark_1+1);
cout<<"作业"<<y+1<<" 被调度!"<<endl;
time+=b[y];
cout<<"完成时间为:"<<time<<endl;
b[y]=0;
}
}
}
展开阅读全文