精彩文档实用标准文案
{
MoveDistance[i-n]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[i-n]=SortOrder[i];
}
for(int j=n-1;j>=0;j--)
{
MoveDistance[N-1-j]=abs(SortOrder[j]-temp);
temp=SortOrder[j];
FindOrder[N-1-j]=SortOrder[j];
}
}
else
精彩文档
实用标准文案
{
for(int i=n-1;i>=0;i--)
{
MoveDistance[N-i-4]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[N-i-4]=SortOrder[i];
}
for(int j=n;j{MoveDistance[j]=abs(SortOrder[j]-temp);
temp=TrackOrder[j];
FindOrder[j]=SortOrder[j];
}
精彩文档
实用标准文案
}
}
//=================CSCAN,循=======================
void CSCAN()
{
int m,n,temp;
temp=BeginNum;
Sort();
cout<<\"请选择开始方向:1--向外;0---向里: cin>>m;
if(m==1)
direction=true;
else if(m==0)
精彩文档
环扫描算法
\";
实用标准文案
direction=false;
else
cout<<\"输入错误!\";
for(int i=0;i{if(SortOrder[i]continue;else
{
n=i;
break;
}
}
精彩文档
实用标准文案
if(direction==true)
{
for(int i=n;i{MoveDistance[i-n]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[i-n]=SortOrder[i];
}
for(int j=0;j{MoveDistance[N-n+j]=abs(SortOrder[j]-temp);
temp=SortOrder[j];
FindOrder[N-n+j]=SortOrder[j];
精彩文档
实用标准文案
}
}
else
{
for(int i=n-1;i>=0;i--)
{
MoveDistance[n-1-i]=abs(SortOrder[i]-temp);
temp=SortOrder[i];
FindOrder[n-1-i]=SortOrder[i];
}
for(int j=N-1;j>=n;j--)
{
MoveDistance[N-j+n-1]=abs(SortOrder[j]-temp);
精彩文档
实用标准文案
temp=SortOrder[j];
FindOrder[N-j+n-1]=SortOrder[j];
}
}
}
//========计算平均寻道时间==============
void Count()
{
int Total=0;
for(int i=0;i{Total+=MoveDistance[i];
}
精彩文档
实用标准文案
AverageDistance=((double)Total)/((double)N);
}
void Show()
{
cout<for(int i=0;i{cout<}cout<cout<}int main()
精彩文档
实用标准文案
{
int y=1;
int s;
Inith();
while(y)
{
cout<<\"请选择寻道方式:1--FCFS; 2--SSTF; 3--SCAN;4--CSCSN: cin>>s;
switch(s)
{
case 1:FCFS();Count();Show();break;
case 2:SSTF();Count();Show();break;
case 3:SCAN();Count();Show();break;
精彩文档
\";
实用标准文案
case 4:CSCAN();Count();Show();break;
}
cout<<\"是否继续选择寻道算法?1--是;0--否: \";
int p;
cin>>p;
y=p;
}
exit;
return 0;
}
结果截图:
精彩文档
实用标准文案
精彩文档