请写一个C++的快速排序算法
时间: 2023-03-13 14:26:06 浏览: 51
好的,快速排序算法是一种非常常见的排序算法,它的基本思想是:
1. 选择一个基准数(通常是数组的第一个数)
2. 将数组中所有比基准数小的数放到基准数的左边,比基准数大的数放到基准数的右边
3. 递归地对基准数左边和右边的两个子数组进行上述操作
C 语言实现的快速排序算法如下:
```
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left;
int j = right;
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;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
```
调用时可以这样:
```
int arr[] = {3, 5, 2, 1, 4};
quick_sort(arr, 0, 4); // 排序后的数组为 {1, 2, 3, 4, 5}
```