Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Algorytmy
Algorytmyhard

Kiedy BFS może zastąpić algorytm Dijkstry?

Tagi
#shortest-path#bfs#dijkstra#graph
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Jeśli wszystkie krawędzie mają ten sam koszt (np. 1), BFS znajduje najkrótsze ścieżki. Gdy wagi są tylko 0 lub 1, można użyć 0–1 BFS na deque; w innych przypadkach potrzebujesz Dijkstry.

Odpowiedź zaawansowana

Głębiej

Dijkstra to ogólny algorytm najkrótszych ścieżek dla wag nieujemnych (różne koszty), zwykle z kolejką priorytetową.

BFS to szczególny przypadek, gdy każda krawędź ma identyczny koszt (najczęściej 1). Wtedy „najkrótsza ścieżka” = „najmniej krawędzi”, a BFS odwiedza wierzchołki w rosnącej liczbie kroków.

Przydatne warianty

  • 0–1 BFS (wagi w {0,1}): deque (krawędzie 0 na przód, 1 na tył) w O(V+E).
  • Małe wagi całkowite: Dial (bucket queue).

Typowe pułapki

  • Użycie BFS w grafie ważonym i oczekiwanie poprawnych dystansów po wagach.
  • Mylenie „najkrótszej po liczbie kroków” z „najkrótszą po sumie wag”.

Powiązane pytania

Algorytmy
A*: jak heurystyka wpływa na optymalność?
#a-star#heuristic#shortest-path
Algorytmy
Bellman–Ford: kiedy go używasz i jaką ma przewagę nad Dijkstrą?
#bellman-ford#shortest-path#graphs
Algorytmy
Co liczy algorytm Floyda–Warshalla i jaka jest jego złożoność?
#graphs#shortest-path
#floyd-warshall
Algorytmy
A* vs Dijkstra — jaka jest różnica i kiedy A* jest szybszy?
#a-star#dijkstra#heuristics
Algorytmy
Dlaczego Dijkstra nie działa z ujemnymi wagami krawędzi i czego użyć zamiast?
#dijkstra#bellman-ford#negative-weights
Algorytmy
Co to jest sortowanie topologiczne i kiedy jest możliwe?
#topological-sort#dag#graph