算法快速排序c++源码
时间: 2023-09-29 15:08:25 浏览: 103
以下是 C++ 中快速排序的源代码:
```cpp
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
// Partition
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
// Recursion
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
int main() {
int arr[] = { 10, 7, 8, 9, 1, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
```
快速排序是一种基于比较的排序算法,它将待排序的数组分成两部分,其中一部分的元素都比另一部分的元素小,然后递归地对这两部分进行排序。这个过程是通过选择一个 pivot 元素并将数组分成两个子数组来实现的。在上面的实现中,我们选择中间元素作为 pivot 元素。
阅读全文