Да, знаком. Куча (heap) — это специализированное дерево, удовлетворяющее правилу кучи: для любой вершины ее значение должно быть не меньше (или не больше) значения любого из ее потомков.
Различают:
Распространенная реализация кучи — бинарная куча, которая обычно представляется в виде массива. Связь родитель-потомок определяется индексами массива:
i
находится по индексу 2*i + 1
.i
находится по индексу 2*i + 2
.i
находится по индексу (i - 1) / 2
.Основные операции и их временная сложность (для бинарной кучи):
Операция | Временная сложность |
---|---|
Создание кучи | O(n) |
Вставка элемента | O(log n) |
Удаление максимума/минимума | O(log n) |
Извлечение максимума/минимума | O(log n) |
Просмотр верхушки | O(1) |
Применение кучи:
Да, знаком. Куча (heap) — это специализированное дерево, удовлетворяющее правилу кучи: для любой вершины ее значение должно быть не меньше (или не больше) значения любого из ее потомков.
Различают:
Распространенная реализация кучи — бинарная куча, которая обычно представляется в виде массива. Связь родитель-потомок определяется индексами массива:
i
находится по индексу 2*i + 1
.i
находится по индексу 2*i + 2
.i
находится по индексу (i - 1) / 2
.Основные операции и их временная сложность (для бинарной кучи):
Операция | Временная сложность |
---|---|
Создание кучи | O(n) |
Вставка элемента | O(log n) |
Удаление максимума/минимума | O(log n) |
Извлечение максимума/минимума | O(log n) |
Просмотр верхушки | O(1) |
Применение кучи:
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.