1 / 5
文档名称:

SSTF算法或SCAN算法.doc

格式:doc   大小:31KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

SSTF算法或SCAN算法.doc

上传人:文库旗舰店 2020/3/30 文件大小:31 KB

下载得到文件列表

SSTF算法或SCAN算法.doc

文档介绍

文档介绍:,干嘛总被别人伤......没有伞的孩子必须努力奔跑▓敷衍旳青春 总昰想太多 怨,只怨现实太现实╰⌒﹏为什么在一起要两个人的同意丶而分手只需要一个人#include<>#include<>#defineMAXSIZE100#include<>#include<>typedefstructnode{intnum;//磁盘号intflag;//用于标记是否已经服务过}Disk;//Diskseq[MAXSIZE]={{55,0},{58,0},{39,0},{18,0},{90,0},{160,0},{150,0},{38,0},{184,0}};Diskseq[MAXSIZE];intsize=9,currentNum=100;intsum1=0;intsum2=0;voidInit(intsize,Diskseq[MAXSIZE])//磁道号的个数{inti;srand(time(NULL));for(i=0;i<size;i++){seq[i].num=rand()%199;//产生0到199之间的数字//scanf("%d",&seq[i].num);//seq[i].num=i*4;seq[i].flag=0;}}voidFCFS(intsize,Diskseq[MAXSIZE])//此参数为请求的入口{inti;for(i=0;i<size;i++){printf("访问的序列号%d\n",seq[i].num);}}intFindShortest(intsize,intcurrentNum,Diskseq[MAXSIZE]){inti,pos1,pos2,min,flag=0;for(i=0;i<size;i++){if(seq[i].flag==0&&seq[i].num!=currentNum){min=abs(seq[i].num-currentNum);pos1=i;break;}}for(i=0;i<size;i++){if(!seq[i].flag&&min>abs(seq[i].num-currentNum)){flag=1;min=abs(seq[i].num-currentNum);pos2=i;}}sum1+=min;if(flag){seq[pos2].flag=1;returnpos2;}else{seq[pos1].flag=1;returnpos1;}}intSSTF(intsize,intstart,Diskseq[MAXSIZE])//start为开始序列号{inti,pos;//pos为最短那个序列号的位置//pos=FindShortest(size);printf("访问的序列号:\n");for(i=0;i<size;i++){pos=FindShortest(size,currentNum,seq);//printf("%d:",currentNum);//sum+=currentNum;currentNum=seq[pos].num;printf("%d",seq[pos].num);}return1;}intflagDirection(intsize,intcurrentNum,Diskseq[MA