Меню
Главная
Случайная статья
Настройки
|
Сливаемая куча (англ. Mergeable heap) — структура данных, которая поддерживает следующие пять операций:
- Создание пустой кучи (англ. Make heap);
- Вставка узла в кучу (англ. Insert);
- Поиск узла в куче , который обладает минимальным ключом (англ. Minimum);
- Удаление узла с минимальным ключом из кучи (англ. Extract minimum);
- Создание новой кучи , которая содержит все узлы куч и (англ. Union).
Реализации
Следующие две структуры данных являются реализациями сливаемой кучи:
Эти структуры данных так же поддерживают еще 2 операции:
- Присваивание узлу в куче нового значения ключа (англ. Decrease key) (предполагается, что новое значение ключа не превосходит текущего);
- Удаление узла из кучи (англ. Delete).
Время выполнения операций у разных реализаций сливаемых пирамид
Операция
|
Биномиальная куча
|
Фибоначчиева куча
|
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)
|
Примечание: для Биномиальной кучи время в наихудшем случае, для Фибоначчиевой кучи амортизированное время.
Замечание. По умолчанию сливаемые кучи являются неубывающими сливаемыми кучами (англ. Mergeable min-heap). Также существуют невозрастающие сливаемые кучи (англ. Mergeable max-heap), которые поддерживают следующие операции:
- Создание пустой кучи (англ. Make heap);
- Вставка узла в кучу (англ. Insert);
- Поиск узла в куче , который обладает максимальныи ключом (англ. Maximum);
- Удаление узла с максимальныи ключом из кучи (англ. Extract maximum);
- Создание новой кучи , которая содержит все узлы куч и (англ. Union).
- Присваивание узлу в куче нового значения ключа (англ. Increase key);
- Удаление узла из кучи (англ. Delete).
Литература
|
|