Menu
Coddy logo textTech

פסאודו־קוד

שיעור 4 מתוך 9 בקורס אלגוריתם בלמן-פורד – אלגוריתמים על גרפים של 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.
  • תנאי ההגנה dist[u] != INF מונע מאיתנו לבנות מסלולים מקודקודים שאינם נגישים.
  • הרפיית כל רשימת הקשתות היא מעבר אחד. Bellman-Ford הוא פשוט אותו מעבר שחוזר n - 1 פעמים.

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה אלגוריתם בלמן-פורד – אלגוריתמים על גרפים

תרגלו בעצמכם: קומפיילר C אונליין