C语言快速排序怎么写
时间: 2023-03-04 13:10:42 浏览: 57
C语言的快速排序算法可以通过以下方式来实现:
1. 选择一个基准数(通常是数组的第一个数)
2. 将数组中小于基准数的元素放到基准数的左边,大于基准数的元素放到基准数的右边
3. 对基准数左边的数组和右边的数组递归地执行上述步骤,直到数组有序
代码示例如下:
```
#include<stdio.h>
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int pivot = arr[left]; // 选择数组第一个数为基准数
int temp;
// 将数组中小于基准数的元素放到基准数的左边,大于基准数的元素放到基准数的右边
while (i < j) {
while (arr[j] >= pivot && i < j) {
j--;
}
while (arr[i] <= pivot && i < j) {
i++;
}
// 交换两个数
if (i < j) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 将基准数放到中间位置
arr[left] = arr[i];
arr[i] = pivot;
// 递归地对左边的数组和右边的数组排序
if (left < i - 1) {
quickSort(arr, left, i - 1);
}
if (i + 1 < right) {
quickSort(arr, i + 1, right);
}
}
int main() {
int arr[] = {9, 4, 6, 1, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++)