Задание № 447

Студент

Епифанов Ростислав

Задача

MergingIterator

Состояние

Завершено

Баллов

3

Дедлайн
22 февраля 2016
Назначено

08.02.2016, 09:37

Завершено

27.02.2016, 09:05

Реализовать класс итератора MergingIterator, который реализует классический алгоритм слияния последовательностей, используемый в алгоритме сортировки слиянием.

Входные данные

В качестве аргументов конструктора класс получает несколько пар итераторов (начало, конец) отсортированных диапазонов.

Результат

Если на вход поступили пары итераторов, соответствующие трём диапазонам 1, 2, 7, 3, 5, 8, и 6, 10, 12, то последовательный доступ к итератору должен выдать последовательность 1, 2, 3, 5, 6, 7, 8, 10, 12.

Примечания

+1 за оптимизацию для объединения множества диапазонов (использование pririty queue => heap sort)

Действия