, , -, , :
(A,B), . , ( ) A -> ... -> B := d(A,B) = 0,
d(A,B) = d(A,X) + d(X,B) = 0 + 0 = 0
, ; , ( ), Θ (n) . , , , (n/2) * (n-1)/2 , Θ (n ^ 2) n - .
, , Θ (n ^ 2) BFS . , :
, V U, d(A,V) = d(A,U). :
A -> ... -> V = A -> ... -> U -> ... -> V, , U (WLOG) A V.
d(A,V) = d(A,U) + d(U,V) <=> d(A,V) = d(A,V) + d(U,V) <=> d(U,V) = 0
, U V A, d(U,V) = 0.
fork -; , fork K.
d(A,V) = d(A,K) + d(K,V) <=> d(K,V) = d(A,V) - d(A,K)
d(A,U) = d(A,K) + d(K,U) <=> d(K,U) = d(A,U) - d(A,K)
d(U,V) = d(K,U) + d(K,V) = d(A,U) + d(A,V) - 2*d(A,K) = 2*(d(A,U) - d(A,K)) = 2 * d(K,U)
, U V , , A, A K; , , K. , d(A,U) = d(A,V) d(U,V) = 0 , A , , isn ' t .
, . , , , , ; , O (n ^ 2), BFS . , -, .