v z cost(z, w) + cost(v, z) < cost(v, w) z v w
< >
< >
v src seq src < src, seq src >
w v < src, seq src > v < src, seq src > seq w (src) seq src src seq src > seq w (src) seqw src seq src w src
s N M l(i, j) i j C(n) s n procedure M = {s} for n N {s} do C(n) = l(s, n) end for while N do M = M {w} : C(w), w N M for n N M do C(n) = min{c(n), C(w) + l(w, n)} end for end while end procedure