begin for each x ∈ V do begin cost[x] := w[s, x]; parent[x] := 's' end U := V - {s}; while U ≠ Φ do begin U の中の m で、cost[m] が最小となる頂点 m を選ぶ; U := U - {m}; m から隣接する頂点の集合を Dm とする; for each x ∈ Dm ∩ U do if cost[m] + w[m, x] < cost[x] then begin cost[x] := cost[m] + w[m, x]; parent[x] := m end end end;