- #include <stdio.h>
- #include <stdlib.h>
- int cmp(const void* a, const void* b){
- return *(int *)a - *(int *)b;
- }
- int find(int* g, int len, int n){
- int i = 0;
- for(; i < len-1; i++) if(g[i+1] >= n) break;
- return i;
- }
- //dn:disk number; cp:current position
- void sstf(int* dn, int len, int cp){
- qsort(dn, len, sizeof(int), cmp);
- int p = find(dn, len, cp);
- int q = p+1;
- while(p >= 0 || q <= len-1){
- if(q == len || dn[q]-cp > cp-dn[p]) cp = dn[p--];
- else cp = dn[q++];
- printf("%d ", cp);
- }
- }
- main(){
- int dn[100] = {47,72,48,14,3,15,2,35,1,26,86,65,5,100,54};
- sstf(dn, 15, 66);
- }
一个C语言写的磁盘调度算法-----SSTF(最短寻道优先算法),还不是很理解,希望哪位大神能给解释一下!!!!
最新推荐文章于 2022-12-16 23:36:55 发布