最短寻道时间算法实现C语言
时间: 2023-07-25 10:07:11 浏览: 123
最短寻道时间算法是磁盘调度算法中的一种,可以实现磁盘上的数据块访问最优化。下面是一个简单的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX 100
void main() {
int queue[MAX], head, n, i, j, tot = 0, m;
float avg;
printf("Enter the size of queue: ");
scanf("%d", &n);
printf("Enter the queue: ");
for(i=1; i<=n; i++) {
scanf("%d", &queue[i]);
}
printf("Enter the initial head position: ");
scanf("%d", &head);
queue[0] = head;
for(i=0; i<n; i++) {
m = abs(queue[i] - queue[i+1]);
tot += m;
printf("%d -> %d: Seek Time = %d\n", queue[i], queue[i+1], m);
}
avg = (float)tot/n;
printf("Average Seek Time = %f\n", avg);
}
```
这段代码首先询问用户队列的长度,然后读取队列元素及初始磁头位置。最后,它计算并输出了每个磁道之间的寻道时间及平均寻道时间。
需要注意的是,这里假设了磁头在队列的第一个元素,因此在计算寻道时间时,需要将初始位置插入队列的第一个位置。如果初始位置不在队列中,需要对队列进行排序。
阅读全文