РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
363 of 815 menu

Функция partial_sort

Функция partial_sort выполняет частичную сортировку диапазона. Она переставляет элементы так, что первые N элементов оказываются наименьшими во всём диапазоне и при этом упорядоченными по возрастанию. Остальные элементы после позиции N остаются в неопределённом порядке. В первый параметр мы передаём итератор начала диапазона, во второй - итератор, задающий позицию, до которой нужно отсортировать элементы, а в третий - итератор конца диапазона. Четвёртым необязательным параметром можно передать функцию сравнения.

Синтаксис

partial_sort(first, middle, last) partial_sort(first, middle, last, comp)

Пример

Давайте отсортируем первые 3 элемента вектора, чтобы они стали наименьшими и упорядоченными по возрастанию:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {5, 3, 1, 4, 2}; partial_sort(vec.begin(), vec.begin() + 3, vec.end()); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 5 4

Пример

Давайте отсортируем весь вектор, передав в качестве второго параметра итератор конца:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {5, 3, 1, 4, 2}; partial_sort(vec.begin(), vec.end(), vec.end()); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте отсортируем первые 3 элемента вектора по убыванию, передав функцию сравнения greater:

#include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; int main() { vector<int> vec = {5, 3, 1, 4, 2}; partial_sort(vec.begin(), vec.begin() + 3, vec.end(), greater<int>()); for (int el : vec) { cout << el << " "; } cout << endl; return 0; }

Результат выполнения кода:

5 4 3 1 2

Смотрите также

  • функция sort,
    которая сортирует весь диапазон
  • функция stable_sort,
    которая устойчиво сортирует весь диапазон
  • функция nth_element,
    которая ставит N-й элемент на своё место
  • функция is_sorted,
    которая проверяет, отсортирован ли диапазон
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить