#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define SWAP(x, y, t) (t = x, x = y, y = t)
void rand_maker(int);
void selection_sort(int [], int);
void insertion_sort(int [], int);
//int ran_num[] = {0};
int ran_num[10000000]={0};
//int large[10000000]={0};
int n[8] = {10, 100, 1000, 2000, 5000, 100000, 20000, 500000};
main()
{
clock_t start, stop;
double total = 0;
int k = 0;
rand_maker(2000);
start = clock();
for(k = 1; k <= 10; k ++)
selection_sort(ran_num, 2000);
stop = clock();
total = ((double)(stop - start)) / CLK_TCK;
printf("Selection Sort: %.9lf", total);
printf("\n");
system("PAUSE");
}
void rand_maker(int num)
{
int i;
srand((unsigned)time(NULL));
for(i = 0; i < num; i++)
{
ran_num[i] = (rand() % 25000) + (rand() % 25000);
}
}
void selection_sort(int numbers[], int array_size)
{
int i, j, min, temp;
for(i = 0; i <= array_size - 1; i++)
{
min = i;
for(j = i + 1; j < array_size; j++)
if(numbers[j] < numbers[min])
min = j;
SWAP(numbers[i], numbers[min], temp);
}
}
void insertion_sort(int numbers[], int array_size)
{
int i, j, index;
for (i = 1; i < array_size; i++)
{
index = numbers[i];
j = i;
while ((j > 0) && (numbers[j-1] > index))
{
numbers[j] = numbers[j-1];
j = j - 1;
}
numbers[j] = index;
}
}