快速排序c++
时间: 2023-06-22 15:22:02 浏览: 31
以下是一种简单的快速排序实现,使用 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[] = { 3, 2, 1, 5, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
quicksort(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个实现中,我们使用 `quicksort` 函数来实现快速排序。首先,我们选择中间元素作为枢轴元素(pivot),并将其与数组中的其他元素进行比较,将小于枢轴元素的元素放在左边,大于枢轴元素的元素放在右边。然后,我们递归地对左边和右边的子数组进行排序,直到排序完成。
在主函数中,我们定义了一个数组 `arr`,并将其传递给 `quicksort` 函数进行排序。最后,我们输出排序后的数组元素。