c语言生成随机数快速排序
时间: 2024-11-20 14:27:02 浏览: 5
在C语言中生成随机数并使用快速排序对整数数组进行排序,通常涉及几个步骤:创建随机数生成器、生成随机数组,以及实现快速排序算法。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含 srand 和 rand 函数
#include <time.h> // 包含 time 函数用于设置随机种子
// 快速排序函数
void quicksort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2]; // 选取中间值作为基准
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quicksort(arr, left, j);
if (i < right)
quicksort(arr, i, right);
}
int main() {
const int size = 998;
int* array = malloc(size * sizeof(int)); // 动态分配内存
// 设置随机种子,保证每次运行结果都不同
srand(time(0));
// 生成随机数并填充数组
for (int i = 0; i < size; i++) {
array[i] = rand() % 100; // 在0-99范围内生成随机数
}
printf("Original array:\n");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
quicksort(array, 0, size - 1);
printf("Sorted array:\n");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
free(array); // 释放动态分配的内存
return 0;
}
```
在这个示例中,我们首先使用 `srand(time(0))` 设置随机数生成器的种子,然后通过 `rand() % 100` 生成0到99之间的随机整数。然后,我们调用 `quicksort` 函数对生成的数组进行排序。
阅读全文