intermediate

Heaps и priority queues

Операции min/max heap, top-k, scheduling и priority-based graph algorithms.

Heap поддерживает partial order: минимум или максимум легко извлечь, но вся структура не sorted. Priority queue является интерфейсом, heap - частая реализация. Они полезны для top-k, scheduling, merge-k-lists и shortest-path algorithms.

Компромисс: сравните время, память и сложность реализации до выбора структуры или паттерна.

На интервью: Ожидайте вопросы про push/pop complexity, почему sorting всех values расточителен для top-k и почему Dijkstra требует priority по current distance.

Типовые ошибки: В JavaScript нет built-in heap, поэтому опишите data structure или используйте маленькую реализацию. Помните, что peek O(1), а insert и remove O(log n).

Чеклист:

  • Отличайте heap от sorted array.
  • Используйте top-k, когда k мал.
  • Назовите O(log n) updates.
  • Уточните min-heap или max-heap.