232
Глава 17. Сортировка
Ограниченная куча
Ограниченная куча — это куча, которая может содержать не бо-
лее k элементов. При наличии n элементов можно отслеживать
k наибольших элементов следующим образом.
Первоначально куча пуста. Для каждого элемента x:
ветвь 1: в случае незаполненной кучи добавить в нее x;
ветвь 2: при заполненной куче сравнить x с наименьшим
элементом в ней; если x меньше, то не может быть одним
из k наибольших элементов, так что можно отбросить его;
ветвь 3: если куча заполнена и x больше самого маленького
элемента в куче, то удалить наименьший элемент из кучи
и добавить x.
С помощью кучи с наименьшим элементом наверху можно от-
слеживать k наибольших элементов. Проанализируем эффек-
тивность этого алгоритма. Для каждого