Шаг 133.
Python: тонкости программирования. Общие структуры данных Python. Очереди с приоритетом (общие сведения)

    На этом шаге мы дадим краткую характеристику таким очередям.

    Очередь с приоритетом представляет собой контейнерную структуру данных, которая управляет набором записей с полностью упорядоченными ключами (например, числовым значением веса) с целью обеспечения быстрого доступа к записи с наименьшим или наибольшим ключом в наборе.


См. Википедию "Полная упорядоченность": https://en.wikipedia.org/wiki/Total_order и https://ru.wikipedia.org/wiki/Линейно_упорядоченное_множество.

    Очередь с приоритетом можно представить как видоизмененную очередь: вместо получения следующего элемента по времени вставки она получает элемент с самым высоким приоритетом. Приоритет отдельных элементов определяется примененным к их ключам упорядочением.

    Очереди с приоритетом широко используются для решения задач планирования, например предоставления предпочтений задачам с более высокой актуальностью.

    Представьте работу планировщика задач операционной системы:

В идеальном случае высокоприоритетные задачи в системе (например, игра в компьютерную 
игру в реальном времени) должны иметь предпочтение перед задачами с более низким 
приоритетом (например, скачивание обновлений в фоновом режиме). Организовывая 
предстоящие задачи в очередь с приоритетом, которая использует актуальность задачи в 
качестве ключа, планировщик задач может быстро выбирать задачи с самым высоким 
приоритетом и давать им выполняться в первую очередь.

    Начиная с этого шага вы увидите несколько вариантов реализации очередей с приоритетом в Python с помощью встроенных структур данных либо структур данных, которые поставляются вместе со стандартной библиотекой Python. Каждая реализация будет иметь свои собственные преимущества и недостатки, но, по нашему мнению, в каждом распространенном сценарии есть свой победитель. Давайте узнаем, что лучше.

    На следующем шаге мы рассмотрим класс list.




Предыдущий шаг Содержание Следующий шаг