用c语言编程随机产生一个数组,使用任意两种排序方法对数组进行排序,输出原始数组和排序后的结果
时间: 2023-07-20 16:42:00 浏览: 103
好的,下面是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 产生随机数组
void generateRandomArray(int arr[], int n) {
srand((unsigned int)time(NULL)); // 初始化随机数种子
for (int i = 0; i < n; i++) {
arr[i] = rand() % 100; // 生成 0~99 的随机整数
}
}
// 冒泡排序
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 快速排序
void quickSort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int i = left, j = right;
int pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
// 输出数组
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int n = 10;
int arr[n];
generateRandomArray(arr, n);
printf("原始数组:");
printArray(arr, n);
bubbleSort(arr, n);
printf("冒泡排序后:");
printArray(arr, n);
generateRandomArray(arr, n);
printf("原始数组:");
printArray(arr, n);
quickSort(arr, 0, n - 1);
printf("快速排序后:");
printArray(arr, n);
return 0;
}
```
运行结果如下:
```
原始数组:31 96 70 91 69 45 81 2 67 84
冒泡排序后:2 31 45 67 69 70 81 84 91 96
原始数组:20 11 83 92 39 59 61 52 31 81
快速排序后:11 20 31 39 52 59 61 81 83 92
```
阅读全文