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

Материал из testwiki
Версия от 02:44, 24 декабря 2023; imported>InternetArchiveBot (Добавление ссылок на электронные версии книг (20231223)) #IABot (v2.0.9.5) (GreenC bot)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шаблон:Значения Сливаемая куча (Шаблон:Lang-en) — структура данных, которая поддерживает следующие пять операций:

Реализации

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

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

  • Присваивание узлу x в куче H нового значения ключа (Шаблон:Lang-en) (предполагается, что новое значение ключа не превосходит текущего);
  • Удаление узла x из кучи H (Шаблон:Lang-en).


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

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


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

Литература