Menu
Coddy logo textTech

Pseudo Code

Coddy'nin Dijkstra Algoritması - Graf Algoritmaları kursunda ders 4 / 9.

dijkstra(n, edges, source):
   dist = [INF, INF, ...]; dist[source] = 0
   visited = all false
   repeat n times:
      u = unvisited vertex with smallest dist (none reachable -> stop)
      visited[u] = true
      for each edge (a -> b, weight w):
         if a == u and dist[u] + w < dist[b]:
            dist[b] = dist[u] + w
   replace every remaining INF with -1
   return dist
  • INF, herhangi bir gerçek mesafeden daha büyük olan bir sayıdır (örneğin 1000000000).
  • Her turda en küçük mesafeye (dist) sahip ziyaret edilmemiş düğümü seçmek, Dijkstra'nın açgözlü (greedy) yaklaşımının merkezidir. Gevşetme (relax) işlemi için düz kenar listesini taramak, kodu basit tutar ve her dilde çalışır.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Dijkstra Algoritması - Graf Algoritmaları bölümündeki tüm dersler