使用C语言快速排序法从小到大排列100个随机生成数据
时间: 2023-08-07 22:03:24 浏览: 152
好的,下面是使用C语言实现快速排序算法从小到大排列100个随机生成数据的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void quick_sort(int arr[], int left, int right);
int partition(int arr[], int left, int right);
int main()
{
int arr[100];
int i;
// 生成随机数
srand(time(NULL));
for (i = 0; i < 100; i++) {
arr[i] = rand() % 1000;
}
// 输出随机数
printf("随机生成的100个数:\n");
for (i = 0; i < 100; i++) {
printf("%d ", arr[i]);
}
// 快速排序
quick_sort(arr, 0, 99);
// 输出排序后的结果
printf("\n排序后的结果:\n");
for (i = 0; i < 100; i++) {
printf("%d ", arr[i]);
}
return 0;
}
// 快速排序
void quick_sort(int arr[], int left, int right)
{
int index;
if (left < right) {
index = partition(arr, left, right);
quick_sort(arr, left, index - 1);
quick_sort(arr, index + 1, right);
}
}
// 分割数组
int partition(int arr[], int left, int right)
{
int pivot = arr[right];
int i = left - 1;
int j;
for (j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp;
return i + 1;
}
```
这个程序会首先生成100个随机数,然后使用快速排序算法对这些数从小到大进行排序,最后输出排序后的结果。
阅读全文