【作業系統】C語言模擬作業系統實現磁碟排程演算法——電梯排程演算法
阿新 • • 發佈:2018-12-26
#include<stdio.h> #include<stdlib.h> #include<time.h> int *Init(int arr[]) { int i = 0; srand((unsigned int)time(0)); for (i = 0; i < 15; i++) { arr[i] = rand() % 200 + 1; printf("%d ", arr[i]); } printf("\n"); return arr; } void two_part(int arr[]) { int i = 0; int j = 0; int k = 0; int sum = 0; int a[15]; int b[15]; int num = 100; //當前磁頭在100號磁軌上 a[0] = 100; b[0] = 100; for (i = 0; i < 15; i++) { for (j = 1; j < 15 - i; j++) { if (arr[j] < arr[j - 1]) { int tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; } } } i = 0; j = 0; for (i = 0; i < 15; i++) { if (arr[i] >= num) { a[j+1] = arr[i]; j++; } else { b[k+1] = arr[i]; k++; } } printf("訪問序列:\n"); for (i = 1; i <= j; i++) { printf("%d ", a[i]); } for (i = k; i >0; i--) { printf("%d ", b[i]); } sum = ((a[j]-100)*2+(100- b[1]))/15; printf("平均尋道長度:%d", sum); } int main() { int arr[15] = { 0 }; int *ret=Init(arr); two_part(ret); getchar(); return 0; }