Heapq и bisect в Python: задачи на кучи и приоритетные очереди
У очереди событий меняются приоритеты, заявки устаревают, а после удаления максимума нужен следующий подходящий элемент. На таких задачах удобно проверить, действительно ли вы умеете работать с кучей. Отдельное упражнение посвящено минимальной стоимости объединения элементов, другое — поиску ближайшей точки через bisect. Сначала разберитесь, чем куча отличается от отсортированного списка: от этого зависит, какие операции поиска к ней применимы.
Как заниматься
5 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.
Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.
Смежная практика
- Почему bisect нельзя применять к куче heapq: вопрос по Python
Почему bisect нельзя применять к куче heapq: вопрос по Python. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - Очередь с приоритетами Python: выбор максимума с учётом срока жизни
Очередь с приоритетами Python: выбор максимума с учётом срока жизни. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Heapq на Python: минимальная стоимость объединения элементов
Heapq на Python: минимальная стоимость объединения элементов. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Heapq на Python: обновление приоритетов в очереди событий
Heapq на Python: обновление приоритетов в очереди событий. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Bisect на Python: найдите ближайшую точку на числовой прямой
Bisect на Python: найдите ближайшую точку на числовой прямой. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник
