L e f t i s t h e a p s ( W e i s s 6 . 6 ) H - - PowerPoint PPT Presentation
L e f t i s t h e a p s ( W e i s s 6 . 6 ) H - - PowerPoint PPT Presentation
L e f t i s t h e a p s ( W e i s s 6 . 6 ) H e a p s w i t h m e r g i n g A n o t h e r u s e f u l o p e r a t i o n i s m e r g i n g t w o h e a p s i n t o o n
H e a p s w i t h m e r g i n g
A n
- t
h e r u s e f u l
- p
e r a t i
- n
i s m e r g i n g t w
- h
e a p s i n t
- n
e T
- d
- t
h i s , l e t ' s g
- b
a c k t
- b
i n a r y t r e e s w i t h t h e h e a p p r
- p
e r t y ( n
- c
- m
p l e t e n e s s ) : W e c a n i m p l e m e n t t h e
- t
h e r p r i
- r
i t y q u e u e
- p
e r a t i
- n
s i n t e r m s
- f
m e r g i n g !
8 1 8 2 9 3 7 3 2 8 9 2 2 8 3 9 6 6
I n s e r t i
- n
T
- i
n s e r t a s i n g l e e l e m e n t :
- b
u i l d a h e a p c
- n
t a i n i n g j u s t t h a t
- n
e e l e m e n t
- m
e r g e i t i n t
- t
h e e x i s t i n g h e a p !
E . g . , i n s e r t i n g 1 2
8 1 8 2 9 3 7 3 2 8 9 2 2 8 3 9 6 6 + 1 2
A t r e e w i t h j u s t
- n
e n
- d
e
D e l e t e m i n i m u m
T
- d
e l e t e t h e m i n i m u m e l e m e n t :
- t
a k e t h e l e f t a n d r i g h t b r a n c h e s
- f
t h e t r e e
- t
h e s e c
- n
t a i n e v e r y e l e m e n t e x c e p t t h e s m a l l e s t
- m
e r g e t h e m !
E . g . , d e l e t i n g 8 f r
- m
t h e p r e v i
- u
s h e a p
1 8 2 9 3 7 3 2 8 9 2 2 8 3 9 6 6
+
H e a p s w i t h m e r g i n g
U s i n g m e r g e , w e c a n e ffj c i e n t l y i m p l e m e n t :
- i
n s e r t i
- n
- d
e l e t e m i n i m u m
O n l y q u e s t i
- n
i s , h
- w
t
- i
m p l e m e n t m e r g e ?
- S
h
- u
l d t a k e O ( l
- g
n ) t i m e
W e ' l l s t a r t w i t h a b a d m e r g e a l g
- r
i t h m , a n d t h e n fj x i t
N a i v e m e r g i n g
H
- w
t
- m
e r g e t h e s e t w
- h
e a p s ? I d e a : r
- t
- f
r e s u l t i n g h e a p m u s t b e 1 8 T a k e h e a p A , i t h a s t h e s m a l l e s t r
- t
. P i c k
- n
e
- f
i t s c h i l d r e n . R e c u r s i v e l y m e r g e B i n t
- t
h a t c h i l d . Wh i c h c h i l d s h
- u
l d w e p i c k ? L e t ' s p i c k t h e r i g h t c h i l d f
- r
n
- p
a r t i c u l a r r e a s
- n
1 8 2 9 3 7 3 2 8 9 2 2 8 3 9 6 6
A = B =
N a i v e m e r g i n g
T
- m
e r g e t w
- n
- n
- e
m p t y h e a p s : P i c k t h e h e a p w i t h t h e s m a l l e s t r
- t
: L e t C b e t h e
- t
h e r h e a p R e c u r s i v e l y m e r g e B a n d C !
x A B + C → x A B + C x A B
E x a m p l e
1 8 < 2 9 s
- p
i c k 1 8 a s t h e r
- t
- f
t h e m e r g e d t r e e
1 8 2 9 3 7 3 2 7 48 9 2 2 8 3 9 6 6
+
N a i v e m e r g i n g
R e c u r s i v e l y m e r g e t h e r i g h t b r a n c h
- f
1 8 a n d t h e 2 9 t r e e
1 8 2 9 3 7 3 2 7 48 9 2 2 8 3 9 6 6
+
N a i v e m e r g i n g
2 8 < 2 9 s
- p
i c k 2 8 a s t h e r
- t
- f
t h e m e r g e d t r e e
1 8 2 9 3 7 3 2 7 48 9 2 2 8 3 9 6 6
+
N a i v e m e r g i n g
R e c u r s i v e l y m e r g e t h e r i g h t b r a n c h
- f
2 8 a n d t h e 2 9 t r e e
1 8 2 9 3 7 3 2 7 48 9 2 3 9 6 6
+
2 8
N a i v e m e r g i n g
2 9 < 3 2 s
- p
i c k 2 9 a s t h e r
- t
- f
t h e m e r g e d t r e e
1 8 2 9 3 7 3 2 7 48 9 2 3 9 6 6
+
2 8
N a i v e m e r g i n g
R e c u r s i v e l y m e r g e t h e r i g h t b r a n c h
- f
2 9 w i t h 3 2
1 8 2 9 3 7 3 2 7 48 9 2 3 9 6 6
+
2 8
N a i v e m e r g i n g
B a s e c a s e : m e r g e 6 6 w i t h t h e e m p t y t r e e N
- t
i c e t h a t t h e t r e e l
- k
s p r e t t y “ r i g h t
- h
e a v y ”
1 8 2 9 3 7 3 2 7 48 9 2 3 9 6 6 2 8
W
- r
s t c a s e f
- r
n a i v e m e r g i n g
A r i g h t
- h
e a v y t r e e : U n f
- r
t u n a t e l y , y
- u
g e t t h i s j u s t b y d
- i
n g i n s e r t i
- n
s ! S
- i
n s e r t t a k e s O ( n ) t i m e . . . H
- w
c a n w e s t
- p
t h e t r e e f r
- m
b e c
- m
i n g r i g h t
- h
e a v y ?
D e fj n e t h e n u l l p a t h l e n g t h ( n p l )
- f
a b i n a r y t r e e a s f
- l
l
- w
s :
- Tie
n p l
- f
t h e e m p t y t r e e i s
- Tie
n p l
- f
t h e t r e e i s 1 + m i n ( n p l ( A ) , n p l ( B ) )
O b s e r v a t i
- n
: n p l i s a t m
- s
t O ( l
- g
n ) , w h e r e n = n u m b e r
- f
n
- d
e s ( i f n p l i s k , t h e n fj r s t k l e v e l s
- f
t r e e a r e “ f u l l ” )
N u l l p a t h l e n g t h
x A B
2 9 7 48 9 3 9 6 6
n p l = 2
L e f t i s t h e a p s
A l e f t i s t h e a p i s a b i n a r y t r e e s a t i s f y i n g t h e h e a p p r
- p
e r t y a n d t h e f
- l
l
- w
i n g i n v a r i a n t : F
- r
a n y n
- d
e i n t h e t r e e … . . . w e m u s t h a v e n p l ( A ) ≥ n p l ( B ) . Tii s m e a n s t h e t r e e i s n
- t
r i g h t
- h
e a v y I f t h i s i n v a r i a n t i s v i
- l
a t e d , w e c a n r e p a i r i t b y s w a p p i n g A a n d B ! N
- t
e : w e m u s t h a v e n p l ( x ) = 1 + n p l ( B ) . Tii s m e a n s t h a t n a i v e m e r g i n g w i l l t a k e l
- g
a r i t h m i c t i m e !
x A B
E x a m p l e
O n e w a y t
- d
- l
e f t i s t m e r g e i s t
- fj
r s t d
- n
a i v e m e r g e , t h e n g
- u
p t h e t r e e s w a p p i n g l e f t a n d r i g h t c h i l d r e n w h e n n e c e s s a r y . . .
1 8 2 9 3 7 3 2 7 48 9 2 3 3 9 6 6
+
1 8 3 3 7 3 2 7 48 9 2 3 9 6 6 2 9
→
N a i v e m e r g e
7 7 07 4 7 4
R e p a i r i n g l e f t i s t i n v a r i a n t
1 8 2 9 3 7 3 2 7 48 9 2 3 3 9 6 6
+
1 8 3 3 7 3 2 7 48 9 2 3 9 6 6 2 9
→
7 7
→
7 4 7 4 1 8 3 3 7 3 2 7 48 9 2 3 9 6 6 2 9 7 0 7 4 1 8 3 3 7 3 2 7 48 9 2 3 9 6 6 2 9 7 0 7 4
→
L e f t i s t h e a p s – i m p l e m e n t a t i
- n
A d d a fj e l d
int npl;
t
- e
a c h n
- d
e , w h i c h r e c
- r
d s t h e n u l l p a t h l e n g t h
- I
n v a r i a n t : x . n p l = = n u l l p a t h l e n g t h
- f
x
I n t h e r e c u r s i v e c a s e
- f
m e r g e :
- M
e r g e t h e
- t
h e r t r e e i n t
- t
h e r i g h t c h i l d
- f
t h i s n
- d
e
- Tie
n s w a p t h e l e f t a n d r i g h t c h i l d r e n i f l e f t . n p l < r i g h t . n p l
- Tie
n u p d a t e t h e n p l
- f
t h i s n
- d
e ( n p l = r i g h t . n p l + 1 )
L e f t i s t h e a p s
I m p l e m e n t a t i
- n
- f
p r i
- r
i t y q u e u e s :
- b
i n a r y t r e e s w i t h h e a p p r
- p
e r t y a n d l e f t i s t i n v a r i a n t , w h i c h a v
- i
d s r i g h t
- h
e a v y t r e e s
- o
t h e r
- p
e r a t i
- n
s a r e b a s e d
- n
m e r g e
A g
- d
fj t f
- r
f u n c t i
- n
a l l a n g u a g e s :
- b
a s e d
- n
t r e e s r a t h e r t h a n a r r a y s , t i n y i m p l e m e n t a t i
- n
!
O t h e r d a t a s t r u c t u r e s b a s e d
- n
n a i v e m e r g i n g + a v
- i
d i n g r i g h t h e a v y t r e e s :
- s
k e w h e a p s ( a l w a y s s w a p l e f t a n d r i g h t c h i l d )
- m
e l d a b l e h e a p s ( s w a p c h i l d r e n a t r a n d
- m
)
S e e w e b p a g e f
- r
l i n k t
- v
i s u a l i s a t i
- n