Язык программирования C++. Вводный курс


Алгоритм partial_sort()


template < class RandomAccessIterator >

void

partial_sort( RandomAccessIterator first,

             RandomAccessIterator middle,

             RandomAccessIterator last );

template < class RandomAccessIterator, class Compare >

void

partial_sort( RandomAccessIterator first,

             RandomAccessIterator middle,

             RandomAccessIterator last, Compare comp );

partial_sort()

сортирует часть последовательности, укладывающуюся в диапазон [first,middle). Элементы в диапазоне [middle,last)

остаются неотсортированными. Например, если дан массив

int ia[] = {29,23,20,22,17,15,26,51,19,12,35,40};

то вызов partial_sort(),где middle

указывает на шестой элемент:



partial_sort( &ia[0], &ia[5], &ia[12] );

генерирует последовательность, в которой наименьшие пять (т.е. middle-first) элементов отсортированы:

{12,15,17,19,20,29,23,22,26,51,35,40}.

Элементы от middle до last-1 не расположены в каком-то определенном порядке, хотя значения каждого из них лежат вне отсортированной последовательности. В первом варианте для сравнения используется оператор “меньше”, определенный для типа элементов контейнера, а во втором – операция сравнения comp.



Содержание раздела