📅  最后修改于: 2023-12-03 15:14:03.040000             🧑  作者: Mango
在 C++ 中,std::partial_sort 是一个函数模板,用于部分排序一个可迭代范围内的元素。其函数签名为:
template< class RandomIt >
void partial_sort( RandomIt first, RandomIt middle, RandomIt last );
template< class RandomIt, class Compare >
void partial_sort( RandomIt first, RandomIt middle, RandomIt last, Compare comp );
其中,第一个版本使用默认的 std::less 比较器进行排序,第二个版本可以使用自定义的比较器进行排序。
参数解释如下:
partial_sort 的时间复杂度为 O(nlogn)。
下面是一个使用 std::partial_sort 的示例程序:
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> v{ 2, 1, 5, 3, 4 };
std::partial_sort(v.begin(), v.begin() + 3, v.end());
for (auto i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
这段代码中,首先定义了一个 std::vector
上述程序输出:
1 2 3 5 4
std::partial_sort 是 C++ 中的一个有用的排序算法,可以用来部分排序给定范围内的元素。它的时间复杂度为 O(nlogn),是一个相对高效的排序算法。