C语言随机生成一个具有 30 个元素的整型数组,并使用 2 种方法对该数组进行排序。
时间: 2024-02-11 09:08:11 浏览: 85
好的,这是一个关于C语言的问题,我会尽力回答。以下是回答:
生成一个具有 30 个元素的整型数组可以使用rand()函数和srand()函数。这两个函数可以用来生成随机数。下面是使用这两个函数生成随机整数数组的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_SIZE 30
int main()
{
int i, j, temp, arr[ARRAY_SIZE];
// 使用time()函数来获取当前时间作为随机数种子
srand(time(NULL));
// 生成随机整数数组
for (i = 0; i < ARRAY_SIZE; i++) {
arr[i] = rand() % 100;
}
// 输出未排序的整数数组
printf("未排序的整数数组:\n");
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 使用冒泡排序对整数数组进行排序
for (i = 0; i < ARRAY_SIZE - 1; i++) {
for (j = 0; j < ARRAY_SIZE - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出使用冒泡排序后的整数数组
printf("使用冒泡排序后的整数数组:\n");
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 使用快速排序对整数数组进行排序
quickSort(arr, 0, ARRAY_SIZE - 1);
// 输出使用快速排序后的整数数组
printf("使用快速排序后的整数数组:\n");
for (i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void quickSort(int arr[], int left, int right)
{
int i, j, pivot, temp;
if (left < right) {
pivot = arr[left];
i = left;
j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < pivot) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
}
```
这个示例代码使用了冒泡排序和快速排序两种排序算法对随机整数数组进行了排序。
阅读全文