请拿c++写一个快速排序
时间: 2023-05-24 07:02:14 浏览: 40
当然可以!以下是快速排序的C代码:
```c
#include<stdio.h>
void quicksort(int[], int, int);
int main() {
int arr[50], n, i;
printf("请输入要排序的元素个数:");
scanf("%d", &n);
printf("请输入要排序的元素:\n");
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
quicksort(arr, 0, n - 1);
printf("快速排序结果:");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
void quicksort(int arr[], int low, int high) {
int i, j, temp, pivot;
if (low < high) {
pivot = low; // 设定基准值
i = low;
j = high;
while (i < j) {
while (arr[i] <= arr[pivot] && i < high)
i++;
while (arr[j] > arr[pivot])
j--;
if (i < j) {
// 交换两个元素的位置
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
temp = arr[pivot];
arr[pivot] = arr[j];
arr[j] = temp;
quicksort(arr, low, j - 1); //递归左子序列
quicksort(arr, j + 1, high); //递归右子序列
}
}
```
希望这个代码对你有所帮助!