请用C++写出快速排序完整代码
时间: 2023-07-17 17:04:17 浏览: 94
当然可以,以下是使用C++编写的完整快速排序代码:
```cpp
#include <iostream>
using namespace std;
// 划分操作
int partition(int arr[], int low, int high) {
int pivot = arr[low]; // 选取第一个元素作为基准
int left = low + 1;
int right = high;
while (true) {
while (left <= right && arr[left] <= pivot)
left++;
while (left <= right && arr[right] > pivot)
right--;
if (left > right)
break;
swap(arr[left], arr[right]);
}
// 将基准元素放到正确的位置
swap(arr[low], arr[right]);
return right;
}
// 快速排序
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
int main() {
int arr[] = { 7, 2, 1, 6, 8, 5, 3, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Original array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
quickSort(arr, 0, n - 1);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码实现了快速排序算法,并对一个整数数组进行排序。运行程序,将输出原始数组和排序后的数组。请注意,这里使用的是整数数组,如果需要对其他类型的数据进行排序,可以相应地修改代码中的数据类型。
阅读全文