Dijkstra's algorithm

DIJKSTRA (G = (V,E), w, Source s)

 1.  INITIALIZE-SINGLE-SOURCE(G, s)
 2.  S := {}     /* the set of vertices reachable from the source s*/
 3.  Create a new min-priority queue Q := V[G]
 4.  while Q <>{}
 5.       do  u :=  EXTRACT-MIN(Q
 6.           S := S U {u}
 7.           for each vertex v in Adj[u]
 8.                  do  RELAX (Q, u, v, w )

END


INITIALIZE-SINGLE-SOURCE
(
G = (V,E), Source s)

 1.  for each vertex v in V[G]
 2.      do  d[v]:=  +infinity    /* priority of vertex v in Q */
 3.          parent[v] : = NIL   /* parent of v in the shortest path tree rooted at s */
 4.  d[s]:= 0

 

RELAX (Q, u, v, w)

 1.  if  d[v] > d[u] + w(u,v)
 2.      then  d[v]:= d[u] + w(u,v)
 3.             parent[v]:= u
 
4.            
update Q   /* since priority of v is reduced */


 



Go Back to the Applet Page