用c++ 写一个快速排序算法
时间: 2024-04-16 09:23:48 浏览: 97
快速排序(C++)
以下是C++实现的快速排序算法:
```c++
#include <iostream>
#include <vector>
using namespace std;
void quickSort(vector<int>& nums, int left, int right) {
if (left >= right) return;
int pivot = nums[left];
int i = left, j = right;
while (i < j) {
while (i < j && nums[j] >= pivot) j--;
nums[i] = nums[j];
while (i < j && nums[i] <= pivot) i++;
nums[j] = nums[i];
}
nums[i] = pivot;
quickSort(nums, left, i - 1);
quickSort(nums, i + 1, right);
}
int main() {
vector<int> nums = {3, 2, 1, 5, 6, 4};
quickSort(nums, 0, nums.size() - 1);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
快速排序的基本思想是选取一个基准元素,将序列分成两部分,左边部分小于基准元素,右边部分大于基准元素,然后对左右两部分递归进行快速排序。
这里使用了vector作为输入序列,left和right分别表示序列的左右端点。算法的时间复杂度为O(nlogn)。
阅读全文