Частичная сортировка в C++
Алгоритм partial_sort ставит на первые n
позиций самые маленькие элементы всего диапазона
в отсортированном порядке.
Хвост может остаться в произвольном порядке,
но все элементы хвоста не меньше n-го
в результирующем префиксе.
Запишем вектор и выведем тройку
первых чисел после вызова:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> data = {9, 1, 8, 3, 7};
std::partial_sort(data.begin(), data.begin() + 3, data.end());
for (int i = 0; i < 3; ++i) {
std::cout << data[i] << " ";
}
std::cout << "\n";
return 0;
}
Частично отсортируйте вектор {5, 2, 8, 1, 6} так, чтобы первые два элемента стали наименьшими, и выведите их.