L a b d e a d l i n e s I f y o u ' v e m i s - - PowerPoint PPT Presentation

l a b d e a d l i n e s
SMART_READER_LITE
LIVE PREVIEW

L a b d e a d l i n e s I f y o u ' v e m i s - - PowerPoint PPT Presentation

L a b d e a d l i n e s I f y o u ' v e m i s s e d t h e fj n a l d e a d l i n e f o r a l a b , d o n ' t p a n i c ! O n J u n e t h e 6 ( M o n d a y a f t e r t


slide-1
SLIDE 1

L a b d e a d l i n e s

I f y

  • u

' v e m i s s e d t h e fj n a l d e a d l i n e f

  • r

a l a b , d

  • n

' t p a n i c ! O n J u n e t h e 6

t h

( M

  • n

d a y a f t e r t h e e x a m ) I w i l l s i t i n m y

  • ffj

c e ( 5 4 6 9 ) f r

  • m

1

  • 3

a n d y

  • u

c a n s h

  • w

m e y

  • u

r l a b i n p e r s

  • n
slide-2
SLIDE 2

S u mmi n g u p

slide-3
SLIDE 3

B a s i c A D T s

M a p s : m a i n t a i n a k e y / v a l u e r e l a t i

  • n

s h i p

  • A

n a r r a y i s a s

  • r

t

  • f

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

S e t s : l i k e a m a p b u t w i t h

  • n

l y k e y s , n

  • v

a l u e s Q u e u e : a d d t

  • n

e e n d , r e m

  • v

e f r

  • m

t h e

  • t

h e r S t a c k : a d d a n d r e m

  • v

e f r

  • m

t h e s a m e e n d D e q u e : a d d a n d r e m

  • v

e f r

  • m

e i t h e r e n d P r i

  • r

i t y q u e u e : a d d , r e m

  • v

e m i n i m u m

slide-4
SLIDE 4

I m p l e m e n t i n g m a p s a n d s e t s

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

  • G
  • d

p e r f

  • r

m a n c e i f y

  • u

c a n k e e p i t b a l a n c e d : O ( l

  • g

n )

  • H

a s g

  • d

r a n d

  • m

a n d s e q u e n t i a l a c c e s s : t h e b e s t

  • f

b

  • t

h w

  • r

l d s

A h a s h t a b l e

  • V

e r y f a s t i f y

  • u

c h

  • s

e a g

  • d

h a s h f u n c t i

  • n

: O ( 1 )

A s k i p l i s t

  • Q

u i t e s i m p l e t

  • i

m p l e m e n t

  • O

n l y a p p r

  • p

r i a t e f

  • r

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

  • P

r

  • b

a b i l i s t i c p e r f

  • r

m a n c e

  • n

l y , t y p i c a l l y : O ( l

  • g

n )

slide-5
SLIDE 5

I m p l e m e n t i n g q u e u e s , s t a c k s , p r i

  • r

i t y q u e u e s

Q u e u e s :

  • a

c i r c u l a r a r r a y ( i n a n i m p e r a t i v e l a n g u a g e )

  • a

p a i r

  • f

l i s t s ( i n a f u n c t i

  • n

a l l a n g u a g e )

S t a c k s :

  • a

d y n a m i c a r r a y ( i n a n i m p e r a t i v e l a n g u a g e )

  • a

l i s t ( i n a f u n c t i

  • n

a l l a n g u a g e )

P r i

  • r

i t y q u e u e s :

  • a

b i n a r y h e a p ( i n a n i m p e r a t i v e l a n g u a g e )

  • a

s k e w h e a p ( i n a f u n c t i

  • n

a l l a n g u a g e )

slide-6
SLIDE 6

W h a t w e h a v e s t u d i e d

Tie d a t a s t r u c t u r e s a n d A D T s a b

  • v

e + a l g

  • r

i t h m s t h a t w

  • r

k

  • n

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

  • r

t i n g , D i j k s t r a ' s , e t c . ) + c

  • m

p l e x i t y + d a t a s t r u c t u r e d e s i g n ( i n v a r i a n t , e t c . ) Y

  • u

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

  • y
  • u

r

  • w

n p r

  • g

r a m s , d a t a s t r u c t u r e s , a l g

  • r

i t h m s e t c .

  • U

s i n g a p p r

  • p

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

  • s

i m p l i f y y

  • u

r p r

  • g

r a m s + m a k e t h e m f a s t e r

  • T

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

  • m

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

  • u

n e e d t

  • b

u i l d y

  • u

r

  • w

n

slide-7
SLIDE 7

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 y

  • u

r

  • w

n d a t a s t r u c t u r e s ?

  • Tii

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

S t u d y

  • t

h e r p e

  • p

l e ' s i d e a s :

  • h

t t p : / / e n . w i k i p e d i a .

  • r

g / w i k i / L i s t _

  • f

_ d a t a _ s t r u c t u r e s

  • B
  • k

: P r

  • g

r a m m i n g P e a r l s

  • B
  • k

: P u r e l y F u n c t i

  • n

a l D a t a S t r u c t u r e s

  • B
  • k

: A l g

  • r

i t h m s b y S e d g e w i c k

  • S

t u d y y

  • u

r f a v

  • u

r i t e l a n g u a g e ' s s t a n d a r d l i b r a r y

slide-8
SLIDE 8

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

F i r s t , i d e n t i f y w h a t

  • p

e r a t i

  • n

s t h e d a t a s t r u c t u r e m u s t s u p p

  • r

t

  • O

f t e n t h e r e ' s a n e x i s t i n g d a t a s t r u c t u r e y

  • u

c a n u s e

  • O

r p e r h a p s y

  • u

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

  • n

e ? Tie n d e c i d e

  • n

:

  • A

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

  • n

( t r e e , a r r a y , e t c . )

  • A

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

  • p

e f u l l y d r i v e t h e r e s t

  • f

t h e d e s i g n !

slide-9
SLIDE 9

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

F i n a l l y , r e m e m b e r t h e F i r s t a n d S e c

  • n

d R u l e s

  • f

P r

  • g

r a m O p t i m i s a t i

  • n

:

1 . D

  • n

’ t d

  • i

t . 2 . ( F

  • r

e x p e r t s

  • n

l y ! ) : D

  • n

’ t d

  • i

t y e t .

K e e p t h i n g s s i m p l e !

  • N
  • p
  • i

n t

  • p

t i m i s i n g y

  • u

r a l g

  • r

i t h m s t

  • h

a v e O ( l

  • g

n ) c

  • m

p l e x i t y i f i t t u r n s

  • u

t n ≤ 1

  • P

r

  • fj

l e y

  • u

r p r

  • g

r a m t

  • fj

n d t h e b

  • t

t l e n e c k s a r e

  • U

s e b i g

  • O

c

  • m

p l e x i t y t

  • g

e t a h a n d l e

  • n

p e r f

  • r

m a n c e b e f

  • r

e y

  • u

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

slide-10
SLIDE 10

W h a t w e h a v e n ' t h a d t i m e f

  • r
slide-11
SLIDE 11

A m

  • r

t i s e d c

  • m

p l e x i t y a n a l y s i s

D y n a m i c a r r a y s , h a s h t a b l e s , s k e w h e a p s e t c . h a v e a m

  • r

t i s e d c

  • m

p l e x i t y

  • e

. g . s k e w h e a p s : O ( l

  • g

n ) a m

  • r

t i s e d c

  • m

p l e x i t y m e a n s a s e q u e n c e

  • f

n

  • p

e r a t i

  • n

s t a k e s O ( n l

  • g

n ) t i m e

W e a n a l y s e d t h e c

  • m

p l e x i t y

  • f

d y n a m i c a r r a y s , b u t f

  • r

e . g . s k e w h e a p s i t ’ s t

  • h

a r d A m

  • r

t i s e d a n a l y s i s g i v e s u s c u t e t

  • l

s t

  • c

a l c u l a t e a m

  • r

t i s e d c

  • m

p l e x i t y

  • e

. g . t h e b a n k e r ’ s m e t h

  • d

: t h e r e i s a “ p i g g y b a n k ” c

  • n

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

  • f

u n i t s

  • f

t i m e

  • o

p e r a t i

  • n

s c a n c h

  • s

e t

  • p

u t t i m e i n t

  • t

h e p i g g y b a n k ; t h i s t i m e i s c

  • u

n t e d a s p a r t

  • f

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

  • e

x p e n s i v e

  • p

e r a t i

  • n

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

  • m

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

  • b

y s a v i n g a n d t a k i n g

  • u

t e x a c t l y t h e r i g h t a m

  • u

n t

  • f

t i m e f r

  • m

t h e p i g g y b a n k , y

  • u

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

  • p

e r a t i

  • n

s a s i f t h e y h a d n

  • n
  • a

m

  • r

t i s e d c

  • m

p l e x i t y

slide-12
SLIDE 12

S p l a y t r e e s

S p l a y t r e e s a r e a b a l a n c e d B S T h a v i n g a m

  • r

t i s e d O ( l

  • g

n ) c

  • m

p l e x i t y

  • Tie

m a i n

  • p

e r a t i

  • n

: s p l a y i n g u s e s r

  • t

a t i

  • n

s t

  • m
  • v

e a g i v e n n

  • d

e t

  • t

h e r

  • t
  • f

t h e t r e e

  • I

n s e r t i

  • n

: u s e B S T i n s e r t i

  • n

a n d s p l a y t h e n e w n

  • d

e

  • D

e l e t i

  • n

: u s e B S T d e l e t i

  • n

a n d s p l a y t h e p a r e n t

  • f

t h e d e l e t e d n

  • d

e

  • L
  • k

u p : u s e B S T l

  • k

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

  • s

e s t n

  • d

e

B e c a u s e l

  • k

u p d

  • e

s s p l a y i n g , f r e q u e n t l y

  • u

s e d v a l u e s a r e q u i c k e r t

  • a

c c e s s ! T

  • h

a r d t

  • a

n a l y s e c

  • m

p l e x i t y f

  • r

t h i s c

  • u

r s e ( a m

  • r

t i s e d )

slide-13
SLIDE 13

F u n c t i

  • n

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

Z i p p e r s : a l l

  • w

y

  • u

t

  • u

p d a t e f u n c t i

  • n

a l d a t a s t r u c t u r e s e ffj c i e n t l y

  • h

t t p : / / w w w . h a s k e l l .

  • r

g / h a s k e l l w i k i / Z i p p e r

F i n g e r t r e e s : a s e q u e n c e d a t a t y p e w i t h a n i m p r e s s i v e l i s t

  • f

f e a t u r e s :

  • O

( 1 ) a c c e s s n e a r t h e f r

  • n

t a n d b a c k

  • f

t h e s e q u e n c e

  • O

( l

  • g

n ) r a n d

  • m

a c c e s s

  • O

( l

  • g

n ) c

  • n

c a t e n a t i

  • n

a n d s p l i t t i n g

  • B

a s e d

  • n

2

  • 3

t r e e s , b u t w i t h “ fj n g e r s ” t h a t g i v e y

  • u

c

  • n

s t a n t

  • t

i m e a c c e s s t

  • t

h e l e f t m

  • s

t a n d r i g h t m

  • s

t n

  • d

e s

  • f

t h e t r e e

  • h

t t p : / / w w w . s

  • i

. c i t y . a c . u k / ~ r

  • s

s / p a p e r s / F i n g e r T r e e . p d f

  • D

a t a . S e q u e n c e i n G H C

slide-14
SLIDE 14

T h e l i m i t s

  • f

s

  • r

t i n g

A l l t h e s

  • r

t i n g a l g

  • r

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

  • g

n ) t i m e . I s t h e r e a r e a s

  • n

f

  • r

t h a t ? Y e s ! I t t u r n s

  • u

t a n y s

  • r

t i n g a l g

  • r

i t h m b a s e d

  • n

c

  • m

p a r i n g l i s t e l e m e n t s ( e . g . a [ i ] < a [ j ] ) m u s t t a k e O ( n l

  • g

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

  • v

e l y p r

  • f
  • S

e e h t t p : / / w w w . b

  • w

d

  • i

n . e d u / ~ l t

  • m

a / t e a c h i n g / c s 2 3 1 / f a l l 7 / L e c t u r e s / s

  • r

t L B . p d f

  • o

r h t t p : / / w w w . c s e . c h a l m e r s . s e / e d u / c

  • u

r s e / D I T 9 6 / s l i d e s / l i m i t s

  • f
  • s
  • r

t i n g . p d f

S

  • r

t i n g a l g

  • r

i t h m s n

  • t

b a s e d

  • n

c

  • m

p a r i s

  • n

s c a n b r e a k t h i s b a r r i e r

  • e

. g . , s

  • r

t i n g a l g

  • r

i t h m s f

  • r

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

  • O

( n ) t i m e b y u s i n g m

  • d

u l a r a r i t h m e t i c ( s e e r a d i x s

  • r

t )

slide-15
SLIDE 15

R e a l

  • w
  • r

l d p e r f

  • r

m a n c e

C

  • n

s t a n t f a c t

  • r

s a r e i m p

  • r

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

  • s

t i m p

  • r

t a n t f a c t

  • r

: t h e p r

  • c

e s s

  • r

’ s c a c h e

  • I

t t a k e s a b

  • u

t 2 c l

  • c

k c y c l e s f

  • r

t h e p r

  • c

e s s

  • r

t

  • r

e a d d a t a f r

  • m

m e m

  • r

y

  • Tie

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

  • f

m e m

  • r

y b u i l t i n t

  • t

h e p r

  • c

e s s

  • r

, w h i c h s t

  • r

e s t h e v a l u e s

  • f

r e c e n t l y

  • a

c c e s s e d m e m

  • r

y l

  • c

a t i

  • n

s

  • I

t ’ s ~ 3 2 K B , a n d r e a d i n g d a t a s t

  • r

e d i n i t t a k e s ~ 1 c l

  • c

k c y c l e

I f y

  • u

r p r

  • g

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

  • r

n e a r b y m e m

  • r

y l

  • c

a t i

  • n

s f r e q u e n t l y ( g

  • d

l

  • c

a l i t y ) , i t w i l l r u n f a s t e r b e c a u s e t h e t h i n g s i t r e a d s a r e m

  • r

e l i k e l y t

  • b

e i n t h e c a c h e

  • Tie

e l e m e n t s

  • f

a n a r r a y a r e s t

  • r

e d c

  • n

t i g u

  • u

s l y i n m e m

  • r

y – t h i s m a k e s i t m u c h b e t t e r f

  • r

l

  • c

a l i t y t h a n e . g . a l i n k e d l i s t

  • A

c c e s s i n g t h e e l e m e n t s

  • f

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

  • r

d e c r e a s i n g

  • r

d e r i s e s p e c i a l l y g

  • d

– t h e p r

  • c

e s s

  • r

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

  • d

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

  • t

h e c a c h e b e f

  • r

e y

  • u

r p r

  • g

r a m a s k s t

  • r

e a d t h e m

  • Tii

s i s

  • n

e r e a s

  • n

w h y q u i c k s

  • r

t i s q u i c k !

slide-16
SLIDE 16

R e a l

  • w
  • r

l d p e r f

  • r

m a n c e

“ L a t e n c y n u m b e r s e v e r y p r

  • g

r a m m e r s h

  • u

l d k n

  • w

” :

  • h

t t p s : / / d z

  • n

e . c

  • m

/ a r t i c l e s / e v e r y

  • p

r

  • g

r a m m e r

  • s

h

  • u

l d

  • k

n

  • w
  • L

1 c a c h e r e f e r e n c e ( ~ r e a d i n g

  • n

e v a r i a b l e ) , . 5 n s

  • S

e n d i n g a p a c k e t U S A E u r

  • p

e U S A , 1 5 m s → →

M u l t i p l y t h e t i m e s b y a b i l l i

  • n

t

  • g

e t “ h u m a n s c a l e ” :

  • L

1 c a c h e r e f e r e n c e , . 5 s (

  • n

e h e a r t b e a t )

  • R

e a d i n g f r

  • m

m a i n m e m

  • r

y , 1 s

  • R

e a d i n g f r

  • m

S S D , 1 . 7 d a y s

  • R

e a d i n g f r

  • m

h a r d d r i v e , 4 m

  • n

t h s !

  • S

e n d a p a c k e t U S A E u r

  • p

e U S A , 5 y e a r s ! → →

P r

  • c

e s s

  • r

s a r e f a s t , c

  • m

m u n i c a t i

  • n

( w i t h n e t w

  • r

k s , w i t h h a r d d r i v e s , e v e n w i t h R A M ) i s s l

  • w

!

slide-17
SLIDE 17

T h e e x a m

slide-18
SLIDE 18

T h e e x a m M

  • n

d a y 3

t h

  • f

M a y , 1 4 : – 1 8 : , H ö r s a l s v ä g e n

slide-19
SLIDE 19

T h e e x a m

Y

  • u

c a n b r i n g a f u s k l a p p ,

  • n

e A 4 p i e c e

  • f

p a p e r 6 q u e s t i

  • n

s O n e a c h q u e s t i

  • n

, y

  • u

c a n g e t a G

  • r

a V G (

  • r

n

  • t

h i n g ) T

  • g

e t a G

  • n

t h e e x a m , g e t a G

  • n

3 q u e s t i

  • n

s T

  • g

e t a V G

  • n

t h e e x a m , g e t a V G

  • n

5 q u e s t i

  • n

s

  • N
  • r

m a l l y : a n s w e r r i g h t = V G , a n s w e r s l i g h t l y w r

  • n

g = G

  • B

u t s

  • m

e q u e s t i

  • n

s h a v e e x t r a p a r t s f

  • r

V G !

B e s t p r e p a r a t i

  • n

: d

  • t

h e e x e r c i s e s , m a k e s u r e y

  • u

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

  • k

a t t h e

  • l

d e x a m s Wh a t y

  • u

n e e d t

  • k

n

  • w

: t h e f

  • l

l

  • w

i n g !

slide-20
SLIDE 20

D a t a s t r u c t u r e s

D y n a m i c a r r a y s Q u e u e , s t a c k a n d d e q u e i m p l e m e n t a t i

  • n

s

  • Q

u e u e s u s i n g a c i r c u l a r a r r a y ( i m p e r a t i v e )

  • r

p a i r

  • f

l i s t s ( f u n c t i

  • n

a l )

B i n a r y s e a r c h t r e e s , A V L t r e e s , 2

  • 3

t r e e s , A A t r e e s

  • n
  • t

d e l e t i

  • n

f

  • r

A V L , 2

  • 3
  • r

A A t r e e s – b u t s t i l l f

  • r

p l a i n B S T s !

B i n a r y h e a p s , s k e w h e a p s L i n k e d l i s t s , s k i p l i s t s H a s h t a b l e s

  • R

e h a s h i n g , l i n e a r p r

  • b

i n g , l i n e a r c h a i n i n g

  • H

a s h f u n c t i

  • n

s : t h e g

  • a

l

  • f

a g

  • d

h a s h f u n c t i

  • n

, b u t n

  • t

h

  • w

t

  • c
  • n

s t r u c t t h e m

G r a p h s ( w e i g h t e d , u n w e i g h t e d , d i r e c t e d , u n d i r e c t e d )

  • R

e p r e s e n t e d u s i n g a d j a c e n c y l i s t s

slide-21
SLIDE 21

A l g

  • r

i t h m s

Tie a l g

  • r

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

  • f

e a c h d a t a s t r u c t u r e G r a p h a l g

  • r

i t h m s :

  • b

r e a d t h

  • fj

r s t a n d d e p t h

  • fj

r s t s e a r c h

  • a

p p l i c a t i

  • n

s

  • f

D F S : t

  • p
  • l
  • g

i c a l s

  • r

t i n g , c h e c k i n g c

  • n

n e c t e d n e s s , S C C s

  • D

i j k s t r a ' s a n d P r i m ' s a l g

  • r

i t h m s

I n s e r t i

  • n

s

  • r

t , q u i c k s

  • r

t , m e r g e s

  • r

t

  • S

t r a t e g i e s f

  • r

c h

  • s

i n g t h e p i v

  • t

– fj r s t e l e m e n t , m e d i a n

  • f
  • t

h r e e , r a n d

  • m

i s e d

slide-22
SLIDE 22

T h e

  • r

y

C

  • m

p l e x i t y a n d b i g

  • O

n

  • t

a t i

  • n
  • F
  • r

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

  • n

s – b a s i c a l l y , w h a t ' s i n t h e c

  • m

p l e x i t y h a n d

  • i

n

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

slide-23
SLIDE 23

G

  • d

l u c k !