O(1) O( ) Ω( n) n
+ 1 2 2
n 1 1 n 2n 4 h n 1 B n 1
B B n 2 h 2n 4 U E U L U R v 0 v 1 U k =< v 1, v 2,..., v k > v i v i+1 v i v i+1 v i+1 v i v i v i+1 v i U k n h h U U = n 1 U L U R U L = n 1 U R = n 1 1 U L 2 2 2 U R 1 1 u v 1
U L U R U L U R 2 u 1 U L 2 2 u n 1 2 X := h E < n 1 U U L X U R X 1(2) X U L (U R ) 1(2) U L (U R ) 1(2) u E U X := u n 2n n + O(n)
n 1 n 1 n 2n 4 n 1 {1, 2,..., n 1} i i 1 i n 2 i i i n 1 n 2 n 2n 4 n 1 B 0 B B 1 + n 2 + n (B + 1) = 2n 4
T s (T, s) s a b a
a b (u, v) u u s u t Probe(v) (u, v) u t + 2 v (u 1, v 1 ), (u 2, v 2 ) u 1, u 2 u 1 u 2 s u 1 u 2 t Split(v 1, v 2 ) (u 1, v 1 ) u 1 (u 2, v 2 ) u 2 < u 1, u 2 > dist(u 1, u 2 ) u 1 u 2 t + dist(u 1,u 2 ) + 2 2
u u v e v e u e e s (a) v (b) v u u z v v z (c) e e Cautious-Walk Probe 4 Probe Split T s e = (u, v) T v u
e v e v u = s (w, u) w u e e = (u, v) e = (v, z) v u z v u 2 6 6 3 1 3r r T T 2 T Split T s u T v = H(u) v = L(u) u v u T (v) u H(u) L(u) u m m s
(m, x) (m, y) m Split(x,y) (m, L(m)) m (m, L(m)) Split (m, L(m)) Probe(L(m)) m m m 2 next := s v := next (v, x), (v, y) v x, y v, L(v) v w v next := w v t v next := t next (v, z) v z = L(v) next := v s Explore-only-child(v) v (v, L(v)) w v w L(v) (w, H(w)) (v, L(v)) Split(H(w),L(v)) w
w v L(v) (v, L(v)) a v L(v) (D(a), H(D(a))) D(a) a (v, L(v)) Split(H(D(a)),L(v)) D(a) (v, L(v)) Probe(L(v)) v Split 6 2 4 4 n 4(n 1) 2l l n 2(n 1) n 1 4 5 3 v v s v
Split v Probe v 2 + 1 2 2 + 1 O( 2 )