Получи случайную криптовалюту за регистрацию!

Что такое heap и как использовать эту структуру данных на Pyth | Python_No_Panic

Что такое heap и как использовать эту структуру данных на Python

Всем привет! В прошлом посте мы с вами разбирали очень крутой алгоритм сортировки, но как вы помните, не совсем был прост этот малый. Сегодня мы поговорим с вами про интересную структуру данных и ее использование на Python. Встречайте нашего героя - «heap» или «куча». Пост будет в двух частях, не забудьте про ваш теплый напиток или может уже холодненький, вроде уже теплеет. И так поехали:

Структура данных кучи представляет собой структуру данных на основе двоичного дерева, в которой каждый узел либо больше или равен (максимальная куча), либо меньше или равен (минимальная куча) своих дочерних элементов. В Python модуль «heapq» обеспечивает реализацию структуры данных кучи.

Вот пример того, как создать кучу в Python:

import heapq

heap = []

heapq.heappush(heap, 5)
heapq.heappush(heap, 3)
heapq.heappush(heap, 7)
heapq.heappush(heap, 1)


print(heap) # Вывод: [1, 3, 7, 5]

Функция «heappush» добавляет элемент в кучу и поддерживает свойство кучи. Наименьший элемент всегда находится в корне кучи.

Чтобы удалить наименьший элемент из кучи, вы можете использовать функцию «heappop»:

import heapq

heap = [1, 3, 7, 5]

smallest = heapq.heappop(heap)

print(smallest) # Вывод: 1
print(heap) # Вывод: [3, 5, 7]

В следующем посте мы поговорим с вами про временную сложность наших методов, а также разберем методы: «heapify», «heapreplace».

Ставьте ваши реакции на этот пост, если он вам понравился, также мы всегда рады вас услышать в комментариях.

Всем классного дня!