advanced
Кратчайшие пути: Dijkstra
Shortest paths с non-negative weights через priority queue и distance relaxation.
Dijkstra находит shortest paths от source, когда все edge weights non-negative. Он повторно берет unsettled node с минимальной known distance и relaxes outgoing edges. Priority queue делает выбор efficient на sparse graphs.
Компромисс: сравните время, память и сложность реализации до выбора структуры или паттерна.
На интервью: Интервьюеры проверяют, отвергаете ли вы negative weights, храните ли distances отдельно от visited state и безопасно игнорируете stale queue entries.
Типовые ошибки: Plain BFS корректен только для unweighted или equal-weight graphs. Слишком ранний visited может зафиксировать non-final distance. Negative edges требуют другой algorithm.
Чеклист:
- Требуйте non-negative weights.
- Используйте min-priority queue.
- Делайте relax edges.
- Пропускайте stale distances.