输入一组关键字序列实现下列排序,实现快速排序算法。用C++写出编码
时间: 2023-07-12 11:41:00 浏览: 129
好的,下面是代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
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 = {5, 3, 8, 6, 4};
cout << "Original nums: ";
for (auto num : nums) {
cout << num << " ";
}
cout << endl;
quickSort(nums, 0, nums.size() - 1);
cout << "After quick sort: ";
for (auto num : nums) {
cout << num << " ";
}
cout << endl;
return 0;
}
```
在这里我们定义了一个快速排序函数 `quickSort`,其中 `left` 和 `right` 分别表示当前需要排序的区间左右端点下标。我们首先取 `nums[left]` 作为枢轴值,然后将整个区间划分为两个部分,左边部分的元素都小于等于枢轴值,右边部分的元素都大于等于枢轴值。接着递归地对左右两个部分分别进行快速排序即可。
在 `main()` 函数中,我们首先定义了一个初始的整数数组 `nums`,然后调用 `quickSort` 函数对其进行快速排序,最后输出排序后的结果。
阅读全文