Step 1: for each vertex vi in V do
Step 2: dist[vi} = infinity
Step 3: distance[v0] = 0;
Step 4: for each vertex v_i in V do
Step 5: insert(Q, vi)
Step 6: S = empty
Step 7: while (Q not empty) do
Step 8: vi = Min(Q)
Step 9: for each vertex vj adjacent to vi do
Step 10: distance[vj] = Minimum (distance[vj], distance[vi] + w[vi,vj])