C语言_数据结构:随机10000个数字,进行所学的8(9)大排序
题目:
由计算机生成10000个整数,使用所学几种排序算法进行排序,统计排序所用的时间,分析各种排序的性能。
创建数组
//创建数组
int *CreatArray() {
int *arr = (int*)malloc(sizeof(int)*MAX);
srand((unsigned int)time(NULL));
for (int i = 0; i < MAX; i++) {
int randNum = rand() % MAX;
arr[i] = randNum;
}
return arr;
}
1、冒泡排序
//冒泡排序
void BubbleSort(int arr[],int length) {
for (int i = 0; i < length; i++) {
for (int j = length-1; j>i; j--) {
if (arr[j-1] < arr[j]) {
Swap(&arr[j-1],&arr[j]);
}
}
}
}
2、选择排序
//选择排序
void SelectSort(int arr[], int length) {
//选择排序,减少了交换次数
for (int i = 0; i < length; i++) {
int min = i;
for (int j = i + 1