~ 562, 563, 564 день 👨💻 | Кучи/пирамиды
С понедельника знакомился со структурой данных "Пирамида (еще называют "куча").
Эту структуру можно назвать деревом, которая имеет следующие признаки:
- реализуется на основе массива;
- значение ключа родителя всегда больше потомков;
- нет упорядоченности левого и правого потомка;
Фактически это версия бинарного дерева, которое упорядоченно сверху вниз.
Скорость выполнения операций:
- Удаление максимального элемента - О(1);
- Вставка нового элемента - О(log2 N);
- Поиск - О(n)
Зачем нужна данная структура?
Она используется для реализации приоритетных очередей. Максимально быстро обслуживается максимальный приоритет, а также эффективно учитываются и ранжируются поступающие объекты.
Создал структуру, методы вставки нового элемента и извлечения максимального.
Покрыл код тестами.
С кодом можно ознакомиться по ссылке на гитхаб:
https://github.com/avagners/algorithms_and_data_structures/blob/main/data_structures/heap/heap_array.py
Post #406
53