Created
May 5, 2017 01:27
-
-
Save ZaneWithSpoon/577b227120d81a62055e0023e9ee2c59 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ============================================================================ | |
Name : part1.c | |
Authors : Zane Witherspoon & Tim Siwula | |
Version : 3.14 | |
Description : takes in an int between 0-4999 as only argument | |
============================================================================ */ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <time.h> | |
int get_rand(); | |
void sort_list(int a[]); | |
int FCFS(int start, int a[]); | |
int SSTF(int start, int a[]); | |
int SCAN(int start, int a[]); | |
int CSCAN(int start, int a[]); | |
int LOOK(int start, int a[]); | |
int CLOOK(int start, int a[]); | |
int addresses[1000]; | |
int sorted_addresses[1000]; | |
int starting_address; | |
int main( int argc, char *argv[] ) { | |
srand(time(NULL)); | |
starting_address = atoi(argv[1]); | |
for (int i = 0; i < 1000; ++i) { | |
addresses[i] = get_rand(); | |
printf("%d\n", addresses[i]); | |
} | |
sort_list(a); | |
//the alrogithms | |
int fcfs_count = FCFS(starting_address, addresses); | |
printf("FCFS distance traveled %d\n", fcfs_count); | |
int sstf_count = SSTF(starting_address, sorted_addresses); | |
//printf("SSTF distance traveled %d\n", fcfs_count); | |
} | |
//takes in addresses, returns total distance traveled | |
int FCFS(int start, int a[]) { | |
int distance = 0; | |
int current = start; | |
for (int i = 0; i < 1000; ++i) { | |
if ((a[i] - current) > 0) { | |
distance += (a[i] - current); | |
} else { | |
distance += (current - a[i]); | |
} | |
current = a[i]; | |
} | |
return distance; | |
} | |
int SSTF(int start, int a[]) { | |
return 0; | |
} | |
void sort_list(int a[]) { | |
for (int i = 0; i < 1000; ++i) | |
{ | |
sorted_addresses[i] = a[i]; | |
} | |
int array_size = 1000; | |
int i, j, temp; | |
for (i = 0; i < (array_size - 1); ++i) | |
{ | |
for (j = 0; j < array_size - 1 - i; ++j ) | |
{ | |
if (sorted_addresses[j] > sorted_addresses[j+1]) | |
{ | |
temp = sorted_addresses[j+1]; | |
sorted_addresses[j+1] = sorted_addresses[j]; | |
sorted_addresses[j] = temp; | |
} | |
} | |
} | |
} | |
int get_rand() { | |
return (rand() % 5000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment