帮我用Cpp写一个快速排序程序。
时间: 2023-11-11 17:05:06 浏览: 34
以下是用C++实现的快速排序程序:
```cpp
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
swap(arr[i], arr[j]);
i++;
j--;
}
}
if (left < j) quickSort(arr, left, j);
if (i < right) quickSort(arr, i, right);
}
int main() {
int arr[] = {9, 5, 7, 2, 1, 6, 8, 3, 4};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Before Sorting: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
quickSort(arr, 0, n - 1);
cout << "\nAfter Sorting: ";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
```
在这个程序中,我们首先定义了一个名为`quickSort`的函数,它接受一个整数数组、左右索引并执行快速排序算法。在函数中,我们首先选择数组的中间元素作为枢轴元素(pivot),然后将数组分为两部分,左部分包含小于枢轴元素的元素,右部分包含大于枢轴元素的元素。我们通过交换元素的方式将它们移到正确的部分。然后我们递归地对左部分和右部分执行相同的操作,直到整个数组排序完成。
在`main`函数中,我们声明了一个整数数组,并对其进行初始化。我们还计算数组中元素的数量,并将其传递给`quickSort`函数。最后,我们在控制台上输出排序前和排序后的数组。