Interested Article - Сливаемая куча

Сливаемая куча ( англ. Mergeable heap ) — структура данных , которая поддерживает следующие пять операций:

  • Создание пустой кучи ( англ. Make heap );
  • Вставка узла в кучу ( англ. Insert );
  • Поиск узла в куче , который обладает минимальным ключом ( англ. Minimum );
  • Удаление узла с минимальным ключом из кучи ( англ. Extract minimum );
  • Создание новой кучи , которая содержит все узлы куч и ( англ. Union ).

Реализации

Следующие две структуры данных являются реализациями сливаемой кучи:

Эти структуры данных так же поддерживают еще 2 операции:

  • Присваивание узлу в куче нового значения ключа ( англ. Decrease key ) (предполагается, что новое значение ключа не превосходит текущего);
  • Удаление узла из кучи ( англ. Delete ).


Время выполнения операций у разных реализаций сливаемых пирамид
Операция Биномиальная куча Фибоначчиева куча
Make heap Θ(1) Θ(1)
Insert O (lg n ) Θ(1)
Minimum O (lg n ) Θ(1)
Extract minimum Θ(lg n ) O (lg n )
Union Ω(lg n ) Θ(1)
Decrease key Θ(lg n ) Θ(1)
Delete Θ(lg n ) O (lg n )

Примечание: для Биномиальной кучи время в наихудшем случае, для Фибоначчиевой кучи амортизированное время.


Замечание. По умолчанию сливаемые кучи являются неубывающими сливаемыми кучами ( англ. Mergeable min-heap ). Также существуют невозрастающие сливаемые кучи ( англ. Mergeable max-heap ), которые поддерживают следующие операции:

  • Создание пустой кучи ( англ. Make heap );
  • Вставка узла в кучу ( англ. Insert );
  • Поиск узла в куче , который обладает максимальныи ключом ( англ. Maximum );
  • Удаление узла с максимальныи ключом из кучи ( англ. Extract maximum );
  • Создание новой кучи , которая содержит все узлы куч и ( англ. Union ).
  • Присваивание узлу в куче нового значения ключа ( англ. Increase key );
  • Удаление узла из кучи ( англ. Delete ).

Литература

  • Томас Х. Кормен и др. . — 2-е изд. — М. : , 2007. — С. 1296. — ISBN 5-8459-0857-4 .
Источник —

Same as Сливаемая куча