Бинарная (двоичная) куча — структура данных, эффективно реализует следующие операции:
добавить элемент,
найти максимальный элемент,
удалить максимальный элемент.
Куча представляет собой полное двоичное дерево, в котором каждый элемент не меньше своих потомков.
СПОСОБЫ РЕАЛИЗАЦИИ бинарной кучи
Модуль heapq Python входит в стандартную библиотеки. Этот модуль реализует все операции с кучей низкого уровня и некоторые общие высокоуровневые операции с кучей.
Основные операции:
heapify(iterable) - используется для преобразования итерации в структуру данных кучи.
heappush(heap, element) - используется для вставки элемента данных, указанного в его параметрах, в кучу.
heappop(heap) - используется для удаления и возврата наименьшего элемента данных из кучи.
heappushpop(heap, element) - используется для объединения операций push и pop в одном операторе, что приводит к повышению эффективности.
Обращение по индексу;Средний случай;Xудший случай
Получить значение максимального элемента;O(1);O(1)
Добавить произвольный элемент;O(logn);O(logn)
Удалить максимальный элемент;O(logn);O(logn)
Найти элемент по значению;O(n);O(n)
Удалить элемент по значению;O(n);O(n)