分治递归算法快速排序c++
时间: 2024-05-10 19:12:38 浏览: 111
快速排序-递归与分治策略
快速排序是一种分治递归算法,其基本思想是选取一个基准元素,将数组分成两个部分,其中一部分元素均小于基准元素,另一部分元素均大于基准元素。然后对这两个部分分别递归执行快速排序,直至整个数组有序。
以下是快速排序的C++代码实现:
```
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left + 1, j = right;
while (i <= j) {
while (i <= j && arr[i] < pivot) {
i++;
}
while (i <= j && arr[j] > pivot) {
j--;
}
if (i < j) {
swap(arr[i], arr[j]);
i++;
j--;
}
}
swap(arr[left], arr[j]);
quick_sort(arr, left, j - 1);
quick_sort(arr, j + 1, right);
}
```
阅读全文