用c++写一个最高效的排序
时间: 2023-11-30 10:02:38 浏览: 24
在 C++ 中,使用快速排序算法(Quick Sort)可以实现高效的排序,其时间复杂度为 O(nlogn)。下面是一个使用递归方式实现快速排序的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
void quick_sort(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;
quick_sort(nums, left, i - 1);
quick_sort(nums, i + 1, right);
}
int main() {
vector<int> nums = {5, 2, 3, 1, 4};
quick_sort(nums, 0, nums.size() - 1);
for (int num : nums) {
cout << num << " ";
}
return 0;
}
```
这个示例代码使用了 vector 来存储待排序的数据,然后调用 quick_sort 函数进行排序。在 quick_sort 函数中,首先选取 nums[left] 作为枢纽元素(pivot),然后使用 i 和 j 两个指针来扫描数组,将小于枢纽元素的数放到左边,将大于枢纽元素的数放到右边。最后,将枢纽元素放到正确的位置上,然后递归地对左右两个子数组进行排序。
这个快速排序算法的运行时间为 O(nlogn),是一种高效的排序算法。