Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save graphoarty/755871968de93a6df8bfde1b2c5ca4c5 to your computer and use it in GitHub Desktop.
Save graphoarty/755871968de93a6df8bfde1b2c5ca4c5 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// arguments int limit, int windowShift
int getRandomNumber(int limit, int windowShifter){
return ( rand() % limit ) + windowShifter;
}
// Should be done in parallel.
void OddEvenSort(int *array, int size){
int i;
// Even Sort
for(i = 0; i < size - 1; i+=2){
if(array[i] > array[i+1]){
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
// Odd Sort
for(i = 1; i < size - 1; i+=2){
if(array[i] > array[i+1]){
int temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
int main(){
time_t t;
srand( (unsigned) time(&t) );
int i;
int *array;
int size = 10;
// Allocate memory space for array.
array = (int *) malloc (size * sizeof(int));
// Generate random numbers.
int *pointer = array;
for(i = 0; i < size; i++, pointer++){
*pointer = getRandomNumber(100, 1);
}
// Print the random array.
pointer = array;
for(i = 0; i < size; i++, pointer++){
printf("%d ", *pointer);
}
printf("\n");
for(i = 0; i < size/2 - 1; i++){
OddEvenSort(array, size);
}
// Print the random array.
pointer = array;
for(i = 0; i < size; i++, pointer++){
printf("%d ", *pointer);
}
free(array);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment