1 / 5
文档名称:

SSTF算法或SCAN算法.doc

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

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

分享

预览

SSTF算法或SCAN算法.doc

上传人:luyinyzha 2016/7/14 文件大小:0 KB

下载得到文件列表

SSTF算法或SCAN算法.doc

文档介绍

文档介绍:#include<> #include<> #define MAXSIZE 100 #include<> #include<> typedef struct node { int num;// ′??ìo? int flag;// ó?óú±ê??ê?·?ò??-·t??1y }Disk; //Disk seq[MAXSIZE] = {{55,0},{58,0},{39,0},{18,0},{90,0},{160,0},{150,0},{38,0},{184,0}} ; Disk seq[MAXSIZE]; int size = 9,currentNum = 100; int sum1 = 0; int sum2 = 0; void Init(int size,Disk seq[MAXSIZE])// ′?μào?μ???êy { int i; srand(time(NULL)); for(i = 0; i<size; i++) { seq[i].num = rand()%199;// 2úéú 0 μ? 199 ????μ?êy×? // scanf("%d",&seq[i].num); //seq[i].num = i*4 ; seq[i].flag = 0; }} void FCFS(int size,Disk seq[MAXSIZE])// ′?2?êy?a???óμ?è??ú { int i; for(i = 0; i<size; i++) { printf(" ·??êμ?DòáDo? %d\n",seq[i].num); }} int FindShortest(int size,int currentNum,Disk seq[MAXSIZE]) { int i,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; return pos2; } else { seq[pos1].flag = 1; return pos1; }} int SSTF(int size,int start,Disk seq[MAXSIZE])//start ?a?aê?DòáDo? { int i,pos;//pos ?a×??ì????DòáDo?μ????? //pos = FindShortest(size); printf(" ·??êμ?DòáDo? :\n"); for(i = 0; i<size; i++) { pos = FindShortest(size,current