#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;
}
}

arrow
arrow
    全站熱搜

    deskwoodss 發表在 痞客邦 留言(0) 人氣()