A n n o u n c e m e n t E x e r c i s e s e s - - PowerPoint PPT Presentation

a n n o u n c e m e n t
SMART_READER_LITE
LIVE PREVIEW

A n n o u n c e m e n t E x e r c i s e s e s - - PowerPoint PPT Presentation

A n n o u n c e m e n t E x e r c i s e s e s s i o n s : o n e r o o m i n s t e a d o f t w o M o n d a y e x e r c i s e s : E C Tiu r s d a y e x e r c i s e s


slide-1
SLIDE 1

A n n

  • u

n c e m e n t

E x e r c i s e s e s s i

  • n

s :

  • n

e r

  • m

i n s t e a d

  • f

t w

  • M
  • n

d a y e x e r c i s e s : E C

  • Tiu

r s d a y e x e r c i s e s : M L 1

slide-2
SLIDE 2

T r e e s ( W e i s s 4 . 1

  • 4

. 2 )

slide-3
SLIDE 3

T r e e s

A t r e e i s a h i e r a r c h i c a l d a t a s t r u c t u r e b u i l t u p f r

  • m

n

  • d

e s

  • A

t t h e t

  • p

i s t h e r

  • t

n

  • d

e

  • E

a c h n

  • d

e c a n h a v e c h i l d n

  • d

e s

  • Wh

i c h i n t u r n c a n h a v e t h e i r

  • w

n c h i l d r e n , a n d s

  • n

E x a m p l e : a n e x p r e s s i

  • n

t r e e

+ 3 4 * 5 6

R

  • t

n

  • d

e C h i l d

  • f

t h e r

  • t

n

  • d

e

slide-4
SLIDE 4

T r e e s

F

  • r

a c

  • l

l e c t i

  • n
  • f

n

  • d

e s t

  • b

e a t r e e :

  • Tie

r e m u s t b e e x a c t l y

  • n

e r

  • t

n

  • d

e

  • T

w

  • n
  • d

e s c a n n

  • t

s h a r e a c h i l d

  • E

v e r y n

  • d

e m u s t b e d e s c e n d e d f r

  • m

t h e r

  • t
slide-5
SLIDE 5

+ 3 4 * 5 6

N

  • t

t r e e s

N

  • t

a t r e e : 5 i s t h e c h i l d

  • f

t w

  • n
  • d

e s

N

  • t

a t r e e : m u l t i p l e r

  • t

s N

  • t

a t r e e : s

  • m

e n

  • d

e s a r e n

  • t

d e s c e n d e d f r

  • m

t h e r

  • t

+ 3 4 * 5 6 + 3 4 * 5

slide-6
SLIDE 6

T r e e s r e c u r s i v e l y

T r e e s c a n b e d e fj n e d r e c u r s i v e l y :

  • A

t r e e c a n b e e m p t y

  • A

n

  • n
  • e

m p t y t r e e c

  • n

s i s t s

  • f

a r

  • t

n

  • d

e t

  • g

e t h e r w i t h i t s c h i l d r e n , w h i c h a r e t r e e s t h e m s e l v e s a n d m u s t n

  • t

s h a r e a n y n

  • d

e s i n c

  • m

m

  • n

Tii s d e fj n i t i

  • n

i s u s e f u l f

  • r

p r

  • g

r a m m i n g

x R

  • t

n

  • d

e C h i l d r e n ( a l s

  • t

r e e s )

. . .

slide-7
SLIDE 7

B i n a r y t r e e s

V e r y

  • f

t e n w e u s e b i n a r y t r e e s , w h e r e e a c h n

  • d

e h a s t w

  • c

h i l d r e n , c a l l e d t h e l e f t a n d r i g h t c h i l d class Node<E> { E value; Node<E> left, right; (optionally) Node<E> parent; } class Tree<E> { E root; }

  • - If you know functional programming:

data Tree a = Node a (Tree a) (Tree a) | Nil

C a n b e null

slide-8
SLIDE 8

( l e f t ) c h i l d

  • f

h a m s t e r p a r e n t

  • f

g

  • r

i l l a a n c e s t

  • r
  • f

a p e r

  • t

l e a f s i b l i n g s

  • w

l

  • w

l h a ms t e r h a ms t e r l e mu r l e mu r g

  • r

i l l a g

  • r

i l l a p e n g u i n p e n g u i n w

  • l

f w

  • l

f

l e f t s u b t r e e

  • r

b r a n c h

  • f
  • w

l

T e r m i n

  • l
  • g

y

d e s c e n d a n t

  • f

h a m s t e r

a p e a p e

p a t h n

  • d

e

slide-9
SLIDE 9

h e i g h t = n u m b e r

  • f

l e v e l s i n t r e e s i z e = n u m b e r

  • f

n

  • d

e s i n t r e e l e v e l = d i s t a n c e t

  • r
  • t

h e i g h t 3 s i z e 4 l e v e l 1

  • w

l

  • w

l h a ms t e r h a ms t e r l e mu r l e mu r g

  • r

i l l a g

  • r

i l l a p e n g u i n p e n g u i n w

  • l

f w

  • l

f a p e a p e

slide-10
SLIDE 10

A b i n a r y t r e e

  • f

s i z e n h a s a h e i g h t

  • f

b e t w e e n l

  • g

2

n a n d n : A t r e e

  • f

s i z e n i s c a l l e d b a l a n c e d i f i t s h e i g h t i s O ( l

  • g

n ) M a n y t r e e a l g

  • r

i t h m s h a v e c

  • m

p l e x i t y O ( h e i g h t

  • f

t r e e ) , s

  • a

r e e ffj c i e n t

  • n

b a l a n c e d t r e e s a n d l e s s s

  • n

u n b a l a n c e d t r e e s N

  • r

m a l l y : b a l a n c e d t r e e s g

  • d

, u n b a l a n c e d b a d !

B a l a n c e d t r e e s

slide-11
SLIDE 11

P r i

  • r

i t y q u e u e s ( W e i s s 6 . 1

  • 6

. 4 , 6 . 9 )

slide-12
SLIDE 12

P r i

  • r

i t y q u e u e s

A p r i

  • r

i t y q u e u e h a s t h r e e

  • p

e r a t i

  • n

s :

  • i

n s e r t : a d d a n e w e l e m e n t

  • fj

n d m i n i m u m : r e t u r n t h e s m a l l e s t e l e m e n t

  • d

e l e t e m i n i m u m : r e m

  • v

e t h e s m a l l e s t e l e m e n t

S i m i l a r i d e a t

  • a

s t a c k

  • r

a q u e u e , b u t :

  • y
  • u

g e t t h e s m a l l e s t e l e m e n t

  • u

t

A l t e r n a t i v e l y , y

  • u

g i v e e a c h e l e m e n t a p r i

  • r

i t y w h e n y

  • u

i n s e r t i t ; y

  • u

g e t

  • u

t t h e s m a l l e s t

  • p

r i

  • r

i t y e l e m e n t

slide-13
SLIDE 13

A p p l i c a t i

  • n

s

A p r i n t e r q u e u e w h e r e c e r t a i n j

  • b

s h a v e h i g h e r p r i

  • r

i t y

  • t

h e b

  • s

s ’ s d

  • c

u m e n t s g e t h i g h e s t p r i

  • r

i t y

  • a

f t e r t h a t , s h

  • r

t e r d

  • c

u m e n t s a r e p r i n t e d fj r s t

  • i

f t w

  • d
  • c

u m e n t s h a v e t h e s a m e p r i

  • r

i t y , t h e

  • l

d e s t

  • n

e i s p r i n t e d fj r s t

  • o

r s

  • m

e c

  • m

b i n a t i

  • n
  • f

a g e a n d s i z e ?

J u s t n e e d t

  • b

e a b l e t

  • c
  • m

p u t e a p r i

  • r

i t y w h e n a d d i n g t h e j

  • b

! S i m i l a r l y , t h e s c h e d u l e r i n a n

  • p

e r a t i n g s y s t e m – d e c i d e w h i c h p r

  • c

e s s t

  • r

u n n e x t

slide-14
SLIDE 14

A p p l i c a t i

  • n

s

S

  • r

t i n g a l i s t :

  • S

t a r t w i t h a n e m p t y p r i

  • r

i t y q u e u e

  • A

d d e a c h e l e m e n t

  • f

t h e i n p u t l i s t i n t u r n

  • R

e p e a t e d l y fj n d a n d r e m

  • v

e t h e s m a l l e s t e l e m e n t

  • Y
  • u

g e t a l l e l e m e n t s

  • u

t i n a s c e n d i n g

  • r

d e r !

I f a l l p r i

  • r

i t y q u e u e

  • p

e r a t i

  • n

s a r e O ( l

  • g

n ) , t h i s s

  • r

t i n g a l g

  • r

i t h m t a k e s O ( n l

  • g

n ) t i m e

slide-15
SLIDE 15

A p p l i c a t i

  • n

s

A s i m u l a t i

  • n

– m

  • d

e l s e v e n t s h a p p e n i n g a t a p a r t i c u l a r t i m e

A t 1 : : 3 t h e c u s t

  • m

e r e n t e r e d t h e s h

  • p

A t 1 : 8 : 5 t h e c u s t

  • m

e r g

  • t

t

  • t

h e c h e c k

  • u

t ”

Wh e n a n e v e n t h a p p e n s , i t c a n c a u s e m

  • r

e e v e n t s t

  • h

a p p e n i n t h e f u t u r e

Wh e n a c u s t

  • m

e r e n t e r s t h e s h

  • p

, 1 m i n u t e l a t e r t h e y p i c k u p s

  • m

e b r e a d ”

Wh e n t h e c a s h i e r fj n i s h e s s c a n n i n g t h e i t e m s , 3 s e c

  • n

d s l a t e r t h e c u s t

  • m

e r fj n i s h e s p a y i n g ”

slide-16
SLIDE 16

A p p l i c a t i

  • n

s – s i m u l a t i

  • n

K e e p a p r i

  • r

i t y q u e u e

  • f

f u t u r e e v e n t s

A t 1 : : 3 a p e r s

  • n

w i l l e n t e r t h e s h

  • p

S i m u l a t

  • r

' s j

  • b

: r e m

  • v

e e a r l i e s t e v e n t a n d r u n i t , t h e n r e p e a t

  • I

n t h e p r i

  • r

i t y q u e u e , e a r l i e r e v e n t s w i l l b e c

  • u

n t e d a s “ s m a l l e r ” t h a n l a t e r e v e n t s

Wh e n w e r u n t h a t e v e n t , i t c a n i n t u r n a d d m

  • r

e e v e n t s t

  • t

h e p r i

  • r

i t y q u e u e

  • Wh

e n a c u s t

  • m

e r e n t e r s t h e s h

  • p

, a d d a n e v e n t “ t h e c u s t

  • m

e r p i c k s u p s

  • m

e b r e a d ” t

  • t

h e p r i

  • r

i t y q u e u e a t a t i m e

  • f

1 m i n u t e l a t e r

slide-17
SLIDE 17

T h i s l e c t u r e

1 . H

  • w

t

  • m

a k e a n e ffj c i e n t p r i

  • r

i t y q u e u e 2 . H

  • w

t

  • d

e s i g n d a t a s t r u c t u r e s

slide-18
SLIDE 18

A n i n e ffj c i e n t p r i

  • r

i t y q u e u e

I d e a 1 : i m p l e m e n t a p r i

  • r

i t y q u e u e a s a d y n a m i c a r r a y

  • I

n s e r t : a d d n e w e l e m e n t t

  • e

n d

  • f

a r r a y O ( 1 )

  • F

i n d m i n i m u m : l i n e a r s e a r c h t h r

  • u

g h a r r a y O ( n )

  • D

e l e t e m i n i m u m : r e m

  • v

e m i n i m u m e l e m e n t O ( n )

F i n d i n g t h e m i n i m u m i s q u i t e e x p e n s i v e t h

  • u

g h .

slide-19
SLIDE 19

A n i n e ffj c i e n t p r i

  • r

i t y q u e u e

I d e a 2 : u s e a s

  • r

t e d a r r a y

  • I

n s e r t : i n s e r t n e w e l e m e n t i n r i g h t p l a c e O ( n )

  • F

i n d m i n i m u m : m i n i m u m i s fj r s t e l e m e n t O ( 1 )

  • D

e l e t e m i n i m u m : r e m

  • v

e fj r s t e l e m e n t O ( n )

F i n d i n g t h e m i n i m u m i s c h e a p ! Y a y ! B u t . . . i n s e r t i

  • n

g

  • t

e x p e n s i v e : (

slide-20
SLIDE 20

I n v a r i a n t s

B y m a k i n g t h e a r r a y s

  • r

t e d . . .

  • F

i n d i n g t h e m i n i m u m g

  • t

e a s i e r

  • B

u t i n s e r t i

  • n

g

  • t

h a r d e r

“ Tie a r r a y i s s

  • r

t e d ” i s a n e x a m p l e

  • f

a d a t a s t r u c t u r e i n v a r i a n t

  • A

p r

  • p

e r t y p i c k e d b y t h e d a t a s t r u c t u r e d e s i g n e r , t h a t a l w a y s h

  • l

d s

  • I

n s e r t , fj n d m i n i m u m a n d d e l e t e m i n i m u m c a n a s s u m e t h a t t h e i n v a r i a n t h

  • l

d s ( t h e a r r a y i s s

  • r

t e d )

  • .

. . b u t t h e y m u s t m a k e s u r e i t r e m a i n s s

  • r

t e d a f t e r w a r d s ( p r e s e r v e t h e i n v a r i a n t )

slide-21
SLIDE 21

M

  • r

e

  • n

i n v a r i a n t s

C h

  • s

i n g t h e r i g h t i n v a r i a n t i s t h e m

  • s

t i m p

  • r

t a n t s t e p i n d a t a s t r u c t u r e d e s i g n ! A g

  • d

i n v a r i a n t a d d s s

  • m

e e x t r a s t r u c t u r e t h a t :

  • m

a k e s i t e a s y t

  • g

e t a t t h e d a t a ( t h e i n v a r i a n t i s u s e f u l )

  • w

i t h

  • u

t m a k i n g i t h a r d t

  • u

p d a t e t h e d a t a ( i t ' s n

  • t

t

  • h

a r d t

  • p

r e s e r v e t h e i n v a r i a n t )

F i n d i n g t h e r i g h t i n v a r i a n t t a k e s a l

  • t
  • f

p r a c t i c e !

slide-22
SLIDE 22

B i n a r y h e a p s : p r i

  • r

i t y q u e u e s i mp l e me n t e d u s i n g t r e e s

slide-23
SLIDE 23

H e a p s – r e p r e s e n t a t i

  • n

A h e a p i m p l e m e n t s a p r i

  • r

i t y q u e u e a s a t r e e . H e r e i s a t r e e : Tii s i s n

  • t

y e t a h e a p . W e n e e d t

  • a

d d a n i n v a r i a n t t h a t m a k e s i t e a s y t

  • fj

n d t h e m i n i m u m e l e m e n t .

2 8 2 9 2 1 8 8 7 43 9 3 7 3 2 8 9 6 6

slide-24
SLIDE 24

T h e h e a p p r

  • p

e r t y

A t r e e s a t i s fj e s t h e h e a p p r

  • p

e r t y i f t h e v a l u e

  • f

e a c h n

  • d

e i s l e s s t h a n (

  • r

e q u a l t

  • )

t h e v a l u e

  • f

i t s c h i l d r e n : Wh e r e c a n w e fj n d t h e s m a l l e s t e l e m e n t ?

8 1 8 2 9 3 7 3 2 7 48 9 2 2 8 3 9 6 6

R

  • t

n

  • d

e i s t h e s m a l l e s t – c a n fj n d m i n i m u m i n O ( 1 ) t i m e

slide-25
SLIDE 25

W h y t h e h e a p p r

  • p

e r t y

Wh y d i d w e p i c k t h i s i n v a r i a n t ? O n e r e a s

  • n

:

  • I

t p u t s t h e s m a l l e s t e l e m e n t a t t h e r

  • t
  • f

t h e t r e e , s

  • w

e c a n fj n d i t i n O ( 1 ) t i m e

Wh y n

  • t

j u s t h a v e t h e i n v a r i a n t “ t h e r

  • t

n

  • d

e i s t h e s m a l l e s t ” ? B e c a u s e :

  • T

r e e s a r e a r e c u r s i v e s t r u c t u r e – t h e c h i l d r e n

  • f

a n

  • d

e a r e a l s

  • t

r e e s

  • I

t ' s t h e n a g

  • d

r u l e

  • f

t h u m b t

  • h

a v e a r e c u r s i v e i n v a r i a n t – e a c h n

  • d

e

  • f

t h e t r e e s h

  • u

l d s a t i s f y t h e s a m e s

  • r

t

  • f

p r

  • p

e r t y

  • I

n t h i s c a s e , i n s t e a d

  • f

“ t h e r

  • t

n

  • d

e i s s m a l l e r t h a n i t s d e s c e n d a n t s ” , w e p i c k “ e a c h n

  • d

e i s s m a l l e r t h a n i t s d e s c e n d a n t s ”

G e n e r a l h i n t : w h e n u s i n g a t r e e d a t a s t r u c t u r e , m a k e e a c h n

  • d

e h a v e t h e s a m e i n v a r i a n t

slide-26
SLIDE 26

B i n a r y h e a p

A b i n a r y h e a p i s a c

  • m

p l e t e b i n a r y t r e e t h a t s a t i s fj e s t h e h e a p p r

  • p

e r t y : C

  • m

p l e t e m e a n s t h a t a l l l e v e l s e x c e p t t h e b

  • t

t

  • m
  • n

e a r e f u l l , a n d t h e b

  • t

t

  • m

l e v e l i s fj l l e d f r

  • m

l e f t t

  • r

i g h t ( s e e a b

  • v

e )

8 1 8 2 9 3 72 6 7 63 2 7 4 2 2 8 3 9 6 6

L e v e l L e v e l 1 L e v e l 2 L e v e l 3

slide-27
SLIDE 27

W h y c

  • m

p l e t e n e s s ?

Tie r e a r e a c

  • u

p l e

  • f

r e a s

  • n

s w h y w e c h

  • s

e t

  • h

a v e a c

  • m

p l e t e t r e e :

  • I

t m a k e s s u r e t h e t r e e i s b a l a n c e d

  • Wh

e n w e i n s e r t a n e w e l e m e n t , i t m e a n s t h e r e i s

  • n

l y

  • n

e p l a c e t h e e l e m e n t c a n g

t h i s i s

  • n

e l e s s d e s i g n d e c i s i

  • n

w e h a v e t

  • m

a k e

Tie r e ' s a t h i r d

  • n

e w h i c h w e w i l l s e e a b i t l a t e r !

slide-28
SLIDE 28

B i n a r y h e a p i n v a r i a n t

Tie b i n a r y h e a p i n v a r i a n t :

  • Tie

t r e e m u s t b e c

  • m

p l e t e

  • I

t m u s t h a v e t h e h e a p p r

  • p

e r t y ( e a c h n

  • d

e i s l e s s t h a n

  • r

e q u a l t

  • i

t s c h i l d r e n )

R e m e m b e r , a l l

  • u

r

  • p

e r a t i

  • n

s m u s t p r e s e r v e t h i s i n v a r i a n t

slide-29
SLIDE 29

B i n a r y h e a p

  • r

n

  • t

?

8 1 8 2 9 2 2 8 6 6 8 1 8 2 9 2 2 8 8 2 8 2 9 2 1 8 3 9 6 6 8 8 7 8 2 9 5 8 5 3 9

slide-30
SLIDE 30

B i n a r y h e a p

  • r

n

  • t

?

8 1 8 2 9 2 2 8 6 6 8 1 8 2 9 2 2 8 8 2 8 2 9 2 1 8 3 9 6 6 8 8 7 8 2 9 5 8 5 3 9

N

  • :

n

  • t

c

  • m

p l e t e N

  • :

n

  • t

c

  • m

p l e t e N

  • :

2 8 > 1 8 Y e s

slide-31
SLIDE 31

A d d i n g a n e l e m e n t t

  • a

b i n a r y h e a p

S t e p 1 : i n s e r t t h e e l e m e n t a t t h e n e x t e m p t y p

  • s

i t i

  • n

i n t h e t r e e Tii s m i g h t b r e a k t h e h e a p i n v a r i a n t ! I n t h i s c a s e , 1 2 i s l e s s t h a n 6 6 , i t s p a r e n t .

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 1 2

slide-32
SLIDE 32

A n a s i d e

T

  • m
  • d

i f y a d a t a s t r u c t u r e w i t h a n i n v a r i a n t , w e h a v e t

  • m
  • d

i f y i t ,

  • w

h i l e p r e s e r v i n g t h e i n v a r i a n t

O f t e n i t ' s e a s i e r t

  • s

e p a r a t e t h e s e :

  • fj

r s t m

  • d

i f y t h e d a t a s t r u c t u r e , p

  • s

s i b l y b r e a k i n g t h e i n v a r i a n t i n t h e p r

  • c

e s s

  • t

h e n “ r e p a i r ” t h e d a t a s t r u c t u r e , m a k i n g t h e i n v a r i a n t t r u e a g a i n

Tii s i s w h a t w e a r e g

  • i

n g t

  • d
  • h

e r e

slide-33
SLIDE 33

A d d i n g a n e l e m e n t t

  • a

b i n a r y h e a p

S t e p 2 : i f t h e n e w e l e m e n t i s l e s s t h a n i t s p a r e n t , s w a p i t w i t h i t s p a r e n t

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 1 2

slide-34
SLIDE 34

A d d i n g a n e l e m e n t t

  • a

b i n a r y h e a p

S t e p 2 : i f t h e n e w e l e m e n t i s l e s s t h a n i t s p a r e n t , s w a p i t w i t h i t s p a r e n t Tie i n v a r i a n t i s s t i l l b r

  • k

e n , s i n c e 1 2 i s l e s s t h a n 2 9 , i t s n e w p a r e n t

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 1 2 6 6

slide-35
SLIDE 35

A d d i n g a n e l e m e n t t

  • a

b i n a r y h e a p

R e p e a t s t e p 2 u n t i l t h e n e w e l e m e n t i s g r e a t e r t h a n

  • r

e q u a l t

  • i

t s p a r e n t . N

  • w

1 2 i s i n i t s r i g h t p l a c e , a n d t h e i n v a r i a n t i s r e s t

  • r

e d . ( Tii n k a b

  • u

t w h y t h i s a l g

  • r

i t h m r e s t

  • r

e s t h e i n v a r i a n t . )

8 1 8 1 2 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9 6 6

slide-36
SLIDE 36

W h y t h i s w

  • r

k s

A t e v e r y s t e p , t h e h e a p p r

  • p

e r t y a l m

  • s

t h

  • l

d s e x c e p t t h a t t h e n e w e l e m e n t m i g h t b e l e s s t h a n i t s p a r e n t A f t e r s w a p p i n g t h e e l e m e n t a n d i t s p a r e n t , s t i l l

  • n

l y t h e n e w e l e m e n t c a n b e i n t h e w r

  • n

g p l a c e ( w h y ? )

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 1 2 6 6

slide-37
SLIDE 37

W h y t h i s w

  • r

k s

S u p p

  • s

e t h a t z i s t h e n e w n

  • d

e a n d w e s w a p i t w i t h i t s p a r e n t : H

  • w

d

  • w

e k n

  • w

t h a t t h e i n v a r i a n t f

  • r

y i s n ’ t b r

  • k

e n i n t h e r i g h t

  • h

a n d d i a g r a m ? F r

  • m

t h e l e f t

  • h

a n d d i a g r a m , w e m u s t h a v e z < x (

  • t

h e r w i s e w e w

  • u

l d n ’ t d

  • t

h e s w a p ) a n d x ≤ y ( b e c a u s e t h e i n v a r i a n t i s

  • n

l y b r

  • k

e n f

  • r

z a t t h i s p

  • i

n t ) – t h e r e f

  • r

e z < y .

x y z z y x x y z

slide-38
SLIDE 38

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

T

  • r

e m

  • v

e t h e m i n i m u m e l e m e n t , w e a r e g

  • i

n g t

  • f
  • l

l

  • w

a s i m i l a r s c h e m e a s f

  • r

i n s e r t i

  • n

:

  • F

i r s t r e m

  • v

e t h e m i n i m u m ( r

  • t

) e l e m e n t f r

  • m

t h e t r e e s

  • m

e h

  • w

, b r e a k i n g t h e i n v a r i a n t i n t h e p r

  • c

e s s

  • Tie

n r e p a i r t h e i n v a r i a n t

B e c a u s e

  • f

c

  • m

p l e t e n e s s , w e c a n

  • n

l y r e a l l y r e m

  • v

e t h e l a s t ( b

  • t

t

  • m
  • r

i g h t ) e l e m e n t f r

  • m

t h e t r e e

  • S
  • l

u t i

  • n

: fj r s t s w a p t h e r

  • t

e l e m e n t w i t h t h e l a s t e l e m e n t , t h e n r e m

  • v

e t h e l a s t e l e m e n t

slide-39
SLIDE 39

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

Tie g

  • a

l : r e m

  • v

e t h e m i n i m u m e l e m e n t F i r s t : s w a p t h e r

  • t

a n d t h e l a s t e l e m e n t ( 6 6 ) , a n d t h e n r e m

  • v

e t h e l a s t e l e m e n t

8 1 8 1 2 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9 6 6

slide-40
SLIDE 40

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

S t e p 1 : s w a p t h e r

  • t

e l e m e n t a n d t h e l a s t e l e m e n t i n t h e t r e e , a n d r e m

  • v

e t h e l a s t e l e m e n t Tie i n v a r i a n t i s b r

  • k

e n , b e c a u s e 6 6 i s g r e a t e r t h a n i t s c h i l d r e n

6 6 1 8 1 2 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9

slide-41
SLIDE 41

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

S t e p 2 : i f t h e m

  • v

e d e l e m e n t i s g r e a t e r t h a n i t s c h i l d r e n , s w a p i t w i t h i t s l e a s t c h i l d ( Wh y t h e l e a s t c h i l d i n p a r t i c u l a r ? )

6 6 1 8 1 2 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9

slide-42
SLIDE 42

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

S t e p 2 : i f t h e m

  • v

e d e l e m e n t i s g r e a t e r t h a n i t s c h i l d r e n , s w a p i t w i t h i t s l e a s t c h i l d ( Wh y t h e l e a s t c h i l d i n p a r t i c u l a r ? )

1 2 1 8 6 6 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9

slide-43
SLIDE 43

R e m

  • v

i n g t h e m i n i m u m e l e m e n t

S t e p 3 : r e p e a t u n t i l t h e m

  • v

e d e l e m e n t i s l e s s t h a n

  • r

e q u a l t

  • i

t s c h i l d r e n

1 2 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6

slide-44
SLIDE 44

S i f t i n g

T w

  • u

s e f u l

  • p

e r a t i

  • n

s w e c a n e x t r a c t f r

  • m

a l l t h i s S i f t u p : i f a n e l e m e n t m i g h t b e l e s s t h a n i t s p a r e n t , i . e . n e e d s “ m

  • v

i n g u p ” ( u s e d i n i n s e r t )

  • R

e p e a t e d l y s w a p t h e e l e m e n t w i t h i t s p a r e n t

S i f t d

  • w

n : i f a n e l e m e n t m i g h t b e g r e a t e r t h a n i t s c h i l d r e n , i . e . n e e d s “ m

  • v

i n g d

  • w

n ” ( u s e d i n r e m

  • v

i n g t h e m i n i m u m e l e m e n t )

  • R

e p e a t e d l y s w a p t h e e l e m e n t w i t h i t s l e a s t c h i l d

slide-45
SLIDE 45

B i n a r y h e a p s – s u m m a r y s

  • f

a r

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

  • H

e a p p r

  • p

e r t y – m e a n s s m a l l e s t v a l u e i s a l w a y s a t r

  • t
  • C
  • m

p l e t e n e s s – m e a n s t r e e i s a l w a y s b a l a n c e d

C

  • m

p l e x i t y :

  • fj

n d m i n i m u m – O ( 1 )

  • i

n s e r t , d e l e t e m i n i m u m – O ( h e i g h t

  • f

t r e e ) , O ( l

  • g

n ) b e c a u s e t r e e i s b a l a n c e d

slide-46
SLIDE 46

B i n a r y h e a p s a r e a r r a y s !

A b i n a r y h e a p i s r e a l l y i m p l e m e n t e d u s i n g a n a r r a y !

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 8 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9

P

  • s

s i b l e b e c a u s e

  • f

c

  • m

p l e t e n e s s p r

  • p

e r t y

slide-47
SLIDE 47

C h i l d p

  • s

i t i

  • n

s

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 8 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9

P a r e n t L . C h i l d R . C h i l d

Tie l e f t c h i l d

  • f

n

  • d

e i i s a t i n d e x 2 i + 1 i n t h e a r r a y . . . . . . t h e r i g h t c h i l d i s a t i n d e x 2 i + 2

slide-48
SLIDE 48

C h i l d p

  • s

i t i

  • n

s

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 8 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9

P a r e n t L . C h i l d R . C h i l d

Tie l e f t c h i l d

  • f

n

  • d

e i i s a t i n d e x 2 i + 1 i n t h e a r r a y . . . . . . t h e r i g h t c h i l d i s a t i n d e x 2 i + 2

slide-49
SLIDE 49

C h i l d p

  • s

i t i

  • n

s

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 8 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9

Tie l e f t c h i l d

  • f

n

  • d

e i i s a t i n d e x 2 i + 1 i n t h e a r r a y . . . . . . t h e r i g h t c h i l d i s a t i n d e x 2 i + 2

P a r e n t L . C h i l d R . C h i l d

slide-50
SLIDE 50

P a r e n t p

  • s

i t i

  • n

8 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 8 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9

Tie p a r e n t

  • f

n

  • d

e i i s a t i n d e x ( i

  • 1

) / 2 ( r

  • u

n d e d d

  • w

n )

P a r e n t C h i l d

slide-51
SLIDE 51

R e m i n d e r : i n s e r t i n g i n t

  • a

b i n a r y h e a p

T

  • i

n s e r t a n e l e m e n t i n t

  • a

b i n a r y h e a p :

  • A

d d t h e n e w e l e m e n t a t t h e e n d

  • f

t h e h e a p

  • S

i f t t h e e l e m e n t u p : w h i l e t h e e l e m e n t i s l e s s t h a n i t s p a r e n t , s w a p i t w i t h i t s p a r e n t

W e c a n d

  • e

x a c t l y t h e s a m e t h i n g f

  • r

a b i n a r y h e a p r e p r e s e n t e d a s a n a r r a y !

slide-52
SLIDE 52

I n s e r t i n g i n t

  • a

b i n a r y h e a p

S t e p 1 : a d d t h e n e w e l e m e n t t

  • t

h e e n d

  • f

t h e a r r a y , s e t child t

  • i

t s i n d e x

6 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 6 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9 1 3 8

C h i l d

8

slide-53
SLIDE 53

I n s e r t i n g i n t

  • a

b i n a r y h e a p

S t e p 2 : c

  • m

p u t e parent = (child-1)/2

6 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 6 6 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 6 1 8 2 9 2 0 2 8 3 9 6 6 3 7 2 6 7 6 3 2 7 4 8 9 1 3 8

C h i l d P a r e n t

8

slide-54
SLIDE 54

I n s e r t i n g i n t

  • a

b i n a r y h e a p

S t e p 3 : i f array[parent] > array[child], s w a p t h e m

6 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 8 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 6 1 8 2 9 2 0 2 8 3 9 8 3 7 2 6 7 6 3 2 7 4 8 9 1 3 6 6

C h i l d P a r e n t

6 6

slide-55
SLIDE 55

I n s e r t i n g i n t

  • a

b i n a r y h e a p

S t e p 4 : s e t child = parent, parent = (child 1) / 2 – , a n d r e p e a t

6 1 8 2 9 3 72 6 7 63 2 7 48 9 2 2 8 3 9 8 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 6 1 8 2 9 2 0 2 8 3 9 8 3 7 2 6 7 6 3 2 7 4 8 9 1 3 6 6 6 6

C h i l d P a r e n t

slide-56
SLIDE 56

I n s e r t i n g i n t

  • a

b i n a r y h e a p

S t e p 4 : s e t child = parent, parent = (child 1) / 2 – , a n d r e p e a t

6 1 8 8 3 72 6 7 63 2 7 48 9 2 2 8 3 9 2 9 0 1 2 7 8 9 1 0 1 1 1 2 3 4 5 6 6 1 8 8 2 0 2 8 3 9 2 9 3 7 2 6 7 6 3 2 7 4 8 9 1 3 6 6 6 6

C h i l d P a r e n t

slide-57
SLIDE 57

B i n a r y h e a p s a s a r r a y s

B i n a r y h e a p s a r e “ m

  • r

a l l y ” t r e e s

  • Tii

s i s h

  • w

w e v i e w t h e m w h e n w e d e s i g n t h e h e a p a l g

  • r

i t h m s

B u t w e i m p l e m e n t t h e t r e e a s a n a r r a y

  • Tie

a c t u a l i m p l e m e n t a t i

  • n

t r a n s l a t e s t h e s e t r e e c

  • n

c e p t s t

  • u

s e a r r a y s

Wh e n y

  • u

s e e a b i n a r y h e a p s h

  • w

n a s a t r e e , y

  • u

s h

  • u

l d a l s

  • k

e e p t h e a r r a y v i e w i n y

  • u

r h e a d ( a n d v i c e v e r s a ! )

slide-58
SLIDE 58

M i n v s m a x h e a p s

Wh a t w e h a v e s e e n i s c a l l e d a m i n h e a p

  • c

a n fj n d , d e l e t e m i n i m u m e l e m e n t

Tie r e i s a v a r i a n t c a l l e d a m a x h e a p

  • c

a n fj n d , d e l e t e m a x i m u m e l e m e n t ( b u t n

  • t

m i n i m u m )

Tie i m p l e m e n t a t i

  • n

i s t

  • t

a l l y s y m m e t r i c

  • I

n f a c t , i f t h e m i n h e a p i m p l e m e n t a t i

  • n

t a k e s t h e c

  • m

p a r a t

  • r

a s a n a r g u m e n t , y

  • u

c a n u s e i t a s a m a x h e a p j u s t b y c h a n g i n g t h e c

  • m

p a r a t

  • r

( a s y

  • u

w i l l d i s c

  • v

e r d

  • i

n g t h e l a b )

slide-59
SLIDE 59

H e a p s

  • r

t

H e a p s

  • r

t u s e s a h e a p t

  • s
  • r

t a n a r r a y , i n

  • p

l a c e !

  • C
  • n

v e r t t h e a r r a y i n t

  • a

m a x h e a p , w h i c h c a n b e a c h i e v e d b y “ s i f t i n g ” e a c h e l e m e n t i n t u r n ( i n l i n e a r t i m e ! )

  • F

i n d a n d r e m

  • v

e t h e m a x i m u m e l e m e n t , s t

  • r

e i t i n t h e l a s t e l e m e n t

  • f

t h e a r r a y ( w h i c h i s n

  • l
  • n

g e r u s e d b y t h e h e a p )

  • R

e p e a t t h i s p r

  • c

e s s u n t i l t h e h e a p i s e m p t y – t h e e l e m e n t s h a v e b e e n r e m

  • v

e d i n d e c r e a s i n g

  • r

d e r

  • f

s i z e a n d s t

  • r

e d s t a r t i n g f r

  • m

t h e e n d

  • f

t h e a r r a y a n d w

  • r

k i n g b a c k w a r d s – i . e . , t h e y a r e n

  • w

s

  • r

t e d

N

  • t

i n t h e c

  • u

r s e , b u t h i s t

  • r

i c a l l y i m p

  • r

t a n t

  • F

i r s t O ( n l

  • g

n ) s

  • r

t i n g a l g

  • r

i t h m

  • I

n t r

  • s
  • r

t – q u i c k s

  • r

t b u t s w i t c h e s t

  • h

e a p s

  • r

t i f t h e r e c u r s i

  • n

d e p t h g e t s t

  • h

i g h ( t

  • a

v

  • i

d O ( n

2

) b e h a v i

  • u

r )

slide-60
SLIDE 60

D a t a s t r u c t u r e d e s i g n

slide-61
SLIDE 61

H

  • w

n

  • t

t

  • d
  • i

t

H e r e i s h

  • w

n

  • t

t

  • d

e s i g n a d a t a s t r u c t u r e :

1 . T a k e t h e

  • p

e r a t i

  • n

s y

  • u

h a v e t

  • i

m p l e m e n t 2 . Tii n k v e r y h a r d a b

  • u

t h

  • w

t

  • i

m p l e m e n t t h e m 3 . B a s h s

  • m

e t h i n g t

  • g

e t h e r t h a t s e e m s t

  • w
  • r

k

B e c a u s e :

  • Y
  • u

w i l l p r

  • b

a b l y h a v e l

  • t

s

  • f

b u g s

  • Y
  • u

w i l l p r

  • b

a b l y m i s s t h e b e s t s

  • l

u t i

  • n
slide-62
SLIDE 62

D a t a s t r u c t u r e d e s i g n

H

  • w

t

  • d

e s i g n a d a t a s t r u c t u r e :

  • P

i c k a r e p r e s e n t a t i

  • n

H e r e : w e r e p r e s e n t t h e p r i

  • r

i t y q u e u e b y a b i n a r y t r e e

  • P

i c k a n i n v a r i a n t H e r e : t h e h e a p p r

  • p

e r t y a n d c

  • m

p l e t e n e s s

O n c e y

  • u

h a v e t h e r i g h t r e p r e s e n t a t i

  • n

a n d i n v a r i a n t , t h e

  • p

e r a t i

  • n

s

  • f

t e n a l m

  • s

t “ d e s i g n t h e m s e l v e s ” !

  • Tie

r e i s

  • f

t e n

  • n

l y

  • n

e w a y t

  • i

m p l e m e n t t h e m

Y

  • u

c

  • u

l d s a y . . . d a t a s t r u c t u r e = r e p r e s e n t a t i

  • n

+ i n v a r i a n t

slide-63
SLIDE 63

P i c k i n g a r e p r e s e n t a t i

  • n

a n d i n v a r i a n t

H

  • w

d

  • y
  • u

k n

  • w

w h i c h r e p r e s e n t a t i

  • n

a n d i n v a r i a n t t

  • g
  • f
  • r

? G

  • d

p l a n : h a v e a fj r s t g u e s s , s e e i f t h e

  • p

e r a t i

  • n

s w

  • r

k

  • u

t , t h e n t w e a k i t

  • P

r i

  • r

i t y q u e u e s : a t fj r s t w e t r i e d a s

  • r

t e d a r r a y , b u t t h e n r e m

  • v

e m i n i m u m n e e d e d t

  • d

e l e t e t h e fj r s t e l e m e n t ( i n e ffj c i e n t ) . Tie n w e t r i e d a t r e e i n s t e a d . P u t t i n g t h e s m a l l e s t e l e m e n t a t t h e r

  • t

l e d u s t

  • t

h e h e a p p r

  • p

e r t y . C

  • m

p l e t e n e s s a l l

  • w

s u s t

  • r

e p r e s e n t t h e h e a p a s a n a r r a y f

  • r

e x t r a e ffj c i e n c y .

  • Q

u e u e s : a t fj r s t w e t r i e d a d y n a m i c a r r a y , b u t t h e r e w a s n

  • w

a y t

  • e

ffj c i e n t l y r e m

  • v

e i t e m s , s

  • w

e s w i t c h e d t

  • a

c i r c u l a r a r r a y

T a k e s p r a c t i c e !

slide-64
SLIDE 64

C h e c k i n g t h e i n v a r i a n t

Wh a t h a p p e n s i f y

  • u

b r e a k t h e i n v a r i a n t ?

  • e

. g . , i n s e r t s i m p l y a d d s t h e n e w e l e m e n t t

  • t

h e e n d

  • f

t h e h e a p

A n s w e r : n

  • t

h i n g g

  • e

s w r

  • n

g s t r a i g h t a w a y , b u t l a t e r

  • p

e r a t i

  • n

s m i g h t f a i l

  • A

l a t e r fj n d m i n i m u m m i g h t r e t u r n t h e w r

  • n

g a n s w e r !

Tie s e k i n d

  • f

b u g s a r e a n i g h t m a r e t

  • t

r a c k d

  • w

n ! S

  • l

u t i

  • n

: c h e c k t h e i n v a r i a n t

slide-65
SLIDE 65

C h e c k i n g t h e i n v a r i a n t

D e fj n e a m e t h

  • d

bool invariant()

t h a t r e t u r n s t r u e i f t h e i n v a r i a n t h

  • l

d s

i n t h i s c a s e , i f t h e h e a p p r

  • p

e r t y h

  • l

d s

Tie n , i n t h e i m p l e m e n t a t i

  • n
  • f

e v e r y

  • p

e r a t i

  • n

, d

  • assert invariant();

Tii s w i l l t h r

  • w

a n e x c e p t i

  • n

i f t h e i n v a r i a n t d

  • e

s n ' t h

  • l

d ! ( N

  • t

e : i n J a v a , m u s t r u n p r

  • g

r a m w i t h

  • ea)
slide-66
SLIDE 66

C h e c k i n g i n v a r i a n t s

W r i t i n g d

  • w

n a n d c h e c k i n g i n v a r i a n t s w i l l h e l p y

  • u

fj n d b u g s m u c h m

  • r

e e a s i l y

  • V

e r y m a n y d a t a s t r u c t u r e b u g s i n v

  • l

v e b r e a k i n g a n i n v a r i a n t

  • E

v e n i f y

  • u

d

  • n

' t t h i n k a b

  • u

t a n i n v a r i a n t , i f y

  • u

r d a t a s t r u c t u r e i s a t a l l f a n c y t h e r e i s p r

  • b

a b l y

  • n

e h i d i n g t h e r e !

  • A

l m

  • s

t a l l p r

  • g

r a m m i n g l a n g u a g e s s u p p

  • r

t a s s e r t i

  • n

s – u s e t h e m t

  • c

h e c k i n v a r i a n t s a n d m a k e y

  • u

r l i f e e a s i e r

slide-67
SLIDE 67

L

  • k

i n g b a c k

  • n
  • l

d e r d e s i g n s

W e i m p l e m e n t e d b

  • u

n d e d q u e u e s b y a n a r r a y a n d a p a i r

  • f

i n d i c e s f r

  • n

t a n d b a c k

  • Tie

c

  • n

t e n t s

  • f

t h e q u e u e i s t h e e l e m e n t s b e t w e e n i n d e x f r

  • n

t a n d i n d e x b a c k

O n c e w e d e c i d e

  • n

t h i s r e p r e s e n t a t i

  • n

, t h e r e i s

  • n

l y

  • n

e w a y t

  • i

m p l e m e n t t h e q u e u e !

  • H

e r e , “ r e p r e s e n t a t i

  • n

” m e a n s – w h a t d a t a t y p e w e u s e , p l u s w h a t a n i n s t a n c e

  • f

t h a t d a t a t y p e m e a n s a s a q u e u e ( i n t h i s c a s e , w h a t t h e q u e u e c

  • n

t a i n s )

slide-68
SLIDE 68

T

  • d

a y

M a i n t

  • p

i c w a s b i n a r y h e a p s , b u t i t w a s a l s

  • a

b

  • u

t h

  • w

t

  • d

e s i g n d a t a s t r u c t u r e s

  • Tie

m a i n t a s k i s n

  • t

h

  • w

t

  • i

m p l e m e n t t h e

  • p

e r a t i

  • n

s , b u t c h

  • s

i n g t h e r i g h t r e p r e s e n t a t i

  • n

a n d i n v a r i a n t

  • Tie

s e a r e t h e m a i n d e s i g n d e c i s i

  • n

s –

  • n

c e y

  • u

c h

  • s

e t h e m , l

  • t

s

  • f

s t u fg f a l l s i n t

  • p

l a c e

  • U

n d e r s t a n d i n g t h e m i s t h e b e s t w a y t

  • u

n d e r s t a n d a d a t a s t r u c t u r e , a n d c h e c k i n g i n v a r i a n t s i s a v e r y g

  • d

w a y

  • f

a v

  • i

d i n g b u g s !

B u t y

  • u

a l s

  • n

e e d l

  • t

s

  • f

e x i s t i n g d a t a s t r u c t u r e s t

  • g

e t i n s p i r a t i

  • n

f r

  • m

!

  • M

a n y

  • f

t h e s e i n t h e r e s t

  • f

t h e c

  • u

r s e