Menu
Coddy logo textTech

Motywacja

Lekcja 2 z 9 w kursie Algorytm Bellmana-Forda — algorytmy grafowe w Coddy.

Algorytm Bellmana-Forda opiera się na jednej operacji, relaksacji: dla krawędzi u -> v o wadze w, jeśli przejście przez u jest tańsze (dist[u] + w < dist[v]), zaktualizuj dist[v]. Powtarzaj to dla każdej krawędzi.

Dlaczego warto poznać algorytm Bellmana-Forda?

  • Ujemne wagi: działa tam, gdzie Dijkstra sobie nie radzi, na przykład przy kosztach, które mogą uwzględniać rabaty, lub przy arbitrażu walutowym.
  • Wykrywanie cykli o ujemnej wadze: jeden dodatkowy przebieg relaksacji ujawnia cykle, których łączna waga jest ujemna.
  • Prostota: bez kolejki priorytetowej, tylko wielokrotna relaksacja krawędzi.

Kompromisem jest szybkość: O(V * E), wolniej niż O((V + E) log V) w algorytmie Dijkstry.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Algorytm Bellmana-Forda — algorytmy grafowe

Poćwicz samodzielnie: Kompilator C online