获得用户输入数据,包括待访问的柱面号,移动臂运动方向,磁头当前所处位置。
sort() :对柱面号序列进行从小到大的排序
lift_dispatch(…):排序完成对序列采用电梯调度算法进行访问。
总是优先考虑移动臂运动方向,然后结合考虑相距最近的柱面号,逐个访问,得出访问序列。
输出访问序列。
#include <stdio.h>
#include <stdlib.h>
#define maxnum 100
int lift_dispatch(int visitlist[maxnum],int list[maxnum],int pos,int direct,int Num)
{
int i,j,cur=0,sum=0;
for(i = 0;i < Num;i++){
if(visitlist[i]==pos){
//找到当前柱面位置
list[cur++] = pos;//把柱号记录到序列中
break;
}
}
if(direct == 1){
//判断磁臂运动方向
for(j = i+1;j < Num;j++