你能用cpp写一个快速排序算法吗?
时间: 2023-03-19 20:21:30 浏览: 93
当然可以!以下是使用C++语言实现快速排序算法的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void quickSort(vector<int>& nums, int left, int right) {
if (left >= right) return;
int pivot = nums[(left + right) / 2];
int i = left, j = right;
while (i <= j) {
while (nums[i] < pivot) i++;
while (nums[j] > pivot) j--;
if (i <= j) {
swap(nums[i], nums[j]);
i++;
j--;
}
}
quickSort(nums, left, j);
quickSort(nums, i, right);
}
int main() {
vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
quickSort(nums, 0, nums.size() - 1);
for (int num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
快速排序是一种高效的排序算法,其时间复杂度为O(nlogn)。它的基本思路是通过选取一个枢轴元素,将待排序的序列分成左右两部分,其中左部分的元素都小于枢轴元素,右部分的元素都大于枢轴元素。然后再递归地对左右两部分进行排序,直到整个序列有序。