Menu
Coddy logo textTech

Pseudocodice

Lezione 4 di 9 del corso Algoritmo di Bellman-Ford - Algoritmi sui grafi di Coddy.

bellmanFord(n, edges, source):
   dist = [INF, INF, ...]; dist[source] = 0
   repeat (n - 1) times:
      for each edge (u -> v, weight w):
         if dist[u] != INF and dist[u] + w < dist[v]:
            dist[v] = dist[u] + w
   replace every remaining INF with -1
   return dist

// negative cycle: after n-1 passes, if any edge STILL relaxes, a
// negative cycle exists.
  • La condizione dist[u] != INF impedisce di costruire percorsi a partire da vertici irraggiungibili.
  • Rilassare l’intero elenco di archi costituisce un passaggio. Bellman-Ford non è altro che quel passaggio ripetuto n - 1 volte.

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Algoritmo di Bellman-Ford - Algoritmi sui grafi

Esercitati da solo: Compilatore C online