Menu
CoddyTech

Pseudocode

Pelajaran 4 dari 9 dalam kursus Algoritma Bellman-Ford: Algoritma Graf 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.
  • Kondisi penjaga dist[u] != INF mencegah kita membangun jalur dari simpul yang tidak dapat dijangkau.
  • Melakukan relaksasi pada seluruh daftar edge berarti satu kali lintasan. Bellman-Ford hanya mengulang lintasan itu sebanyak n - 1 kali.

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Algoritma Bellman-Ford: Algoritma Graf

Latihan sendiri: Compiler C online