c语言定义一个动态数组,长度为变量n,用随机函数给数组各元素赋值。然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递
时间: 2023-05-28 10:07:02 浏览: 121
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void quick_sort(int *array, int left, int right) {
if (left >= right) {
return;
}
int pivot = array[left];
int i = left + 1, j = right;
while (i <= j) {
while (i <= j && array[i] < pivot) {
i++;
}
while (i <= j && array[j] >= pivot) {
j--;
}
if (i < j) {
swap(&array[i], &array[j]);
}
}
swap(&array[left], &array[j]);
quick_sort(array, left, j - 1);
quick_sort(array, j + 1, right);
}
int main() {
int n;
printf("Enter the length of the array: ");
scanf("%d", &n);
int *array = (int *) malloc(n * sizeof(int));
srand(time(NULL));
for (int i = 0; i < n; i++) {
array[i] = rand() % 100;
printf("%d ", array[i]);
}
printf("\n");
quick_sort(array, 0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", array[i]);
}
printf("\n");
free(array);
return 0;
}
```