2024-03-19 02:45:09 +08:00

78 lines
1.7 KiB
C

#include <stdio.h>
#include "time.h"
#define MAIN_FUNC
#include "../algorithm/radix_sort.c"
#include "../algorithm/bubble.c"
#include "../algorithm/qsort.c"
/**
* 排序耗时
*/
int big_rand()
{
return (((rand() << 8) & 0xFF00ul) | ((rand()) & 0x00FFul));
}
/**
* 生成随机数
*/
int *rand_generate(int len)
{
// srand(time(NULL));
int *list = malloc(len * sizeof(int));
for (int i = 0; i < len; i++)
{
list[i] = big_rand();
}
return list;
}
int *copy_int(int *source, int len)
{
int *tmp = malloc(len * sizeof(int));
memcpy(tmp, source, len * sizeof(int));
return tmp;
}
void print_int(int *n)
{
for (int i = 0; i < 100; i++)
{
printf("%d\t", n[i]);
}
}
int main()
{
int len = 10000;
int *number = rand_generate(len);
int *tmp = copy_int(number, len);
clock_t start_time = clock(), t = 0;
// 基数排序
radix_sort_lds(tmp, len);
t = clock();
print_int(tmp);
printf("radix_sort_lds number:%d\ttime:%ldms\n", len, t - start_time);
//快速排序
tmp = copy_int(number, len);
start_time = clock();
quick_sort(tmp, len);
t = clock();
print_int(tmp);
printf("quick_sort\tnumber:%d\ttime:%ldms\n", len, t - start_time);
//插入排序
tmp = copy_int(number, len);
start_time = clock();
insert_sort(tmp, len);
t = clock();
print_int(tmp);
printf("insert_sort number:%d\ttime:%ldms\n", len, t - start_time);
//冒泡排序
tmp = copy_int(number, len);
start_time = clock();
bubble_sort(tmp, len);
t = clock();
print_int(tmp);
printf("bubble_sort number:%d\ttime:%ldms\n", len, t - start_time);
getchar();
return 0;
}