#include<iostream.h>
#include<math.h>
void sstf(int m[],int);//声明最短查找时间优先调度算法模块!
//主函数
void main()
{
cout<<"现在开始模拟磁盘移臂调度算法。"<<endl;
cout<<"开始:"<<endl;
const int now=143;
int a1[]={86,145,93,179,95,150,103,176,132};
sstf(a1,now);
}
//定义最短查找时间优先调度算法!
void sstf(int m[],int mnow)
{
cout<<"最短查找时间优先调度算法:"<<endl;
int s=0;
int c;
int y;
double te;
int mm[9];
int tm=mnow;
for(int i=0;i<=8;i++)
{
double temp=fabs(tm-9999);
for(int j=0;j<=8;j++)
{
te=fabs(tm-m[j]);
if(temp>te&&te!=0)
{
temp=te;
c=m[j];
y=j;
}
}
tm=c;
mm[i]=c;
m[y]=999999;
}
s=mnow-mm[0];
double t=fabs(s);
for(i=0;i<=8;i++)
{
t=t+fabs(mm[i]-mm[i+1]);
}
cout<<"移动顺序:";
for(i=0;i<9;i++)
{
cout<<mm[i]<<" ";
}
cout<<endl;
cout<<"移臂总量为:"<<t<<endl;
}