quick_sort() c++
时间: 2023-08-19 21:07:35 浏览: 145
C++实现快速排序(Quicksort)算法
以下是一个使用C++语言实现的快速排序算法示例:
```cpp
#include <iostream>
using namespace std;
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j <= high - 1; j++) {
if (arr[j] < pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i + 1], arr[high]);
return (i + 1);
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
int main() {
int arr[] = {9, 2, 5, 1, 7, 4, 8, 6, 3};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个示例中,我们使用了经典的快速排序算法实现。其中,`partition`函数用于确定基准值的位置,并将数组划分为两部分;`quickSort`函数用于递归地对划分后的子数组进行排序。最后,我们在`main`函数中调用`quickSort`函数来对数组进行排序,并输出排序后的结果。
注意,在C++中,我们使用`swap`函数来交换数组中的元素。
这个示例中的时间复杂度同样为O(nlogn),其中n是待排序数组的长度。快速排序是一种常用且高效的排序算法,适用于大部分情况下。
阅读全文