编写一个C++的快速排序
时间: 2023-07-07 09:44:53 浏览: 83
快速排序源代码--QuickSort
好的,以下是 C++ 的快速排序代码实现:
```c++
#include <iostream>
using namespace std;
void quick_sort(int arr[], int left, int right) {
if (left >= right) return; // 如果左指针大于等于右指针,直接返回
int i = left, j = right, pivot = arr[left];
// 定义左右指针和基准值
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot; // 基准值归位
quick_sort(arr, left, i-1); // 递归左半部分
quick_sort(arr, i+1, right); // 递归右半部分
}
int main() {
int arr[] = {4, 2, 8, 1, 5, 7};
int len = sizeof(arr) / sizeof(arr[0]);
quick_sort(arr, 0, len-1);
for (int i = 0; i < len; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码实现了一个名为 `quick_sort` 的函数,输入参数是需要排序的数组 `arr`,以及左右指针 `left` 和 `right`。函数使用快速排序算法,将数组分为左右两个部分,对左右部分分别递归调用 `quick_sort` 函数,最终得到排序后的数组。主函数中定义了一个测试数组,使用 `quick_sort` 函数对其进行排序并输出排序结果。
阅读全文