К справочнику

Структуры данных

Куча

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

Сигнал задачи

Когда применять

Нужно многократно получать текущий минимум или максимум.

Что держать в голове

  • Уметь различать heap и отсортированный массив.
  • Уметь учитывать противоположные значения API C++ и Python.

Сложность

  • Чтение экстремума O(1), вставка и удаление экстремума O(log n), построение heapify O(n), память O(n).

Границы и ошибки

  • Куча гарантирует только вершину, а не полный порядок; min-heap и max-heap требуют согласованного компаратора.