C o mp l e x i t y ( W e i s s c h a p t e r 5 - - PowerPoint PPT Presentation

c o mp l e x i t y w e i s s c h a p t e r 5
SMART_READER_LITE
LIVE PREVIEW

C o mp l e x i t y ( W e i s s c h a p t e r 5 - - PowerPoint PPT Presentation

C o mp l e x i t y ( W e i s s c h a p t e r 5 ) C o m p l e x i t y Tii s l e c t u r e i s a l l a b o u t h o w t o d e s c r i b e t h e p e r f o r m a n c e o f


slide-1
SLIDE 1

C

  • mp

l e x i t y ( W e i s s c h a p t e r 5 )

slide-2
SLIDE 2

C

  • m

p l e x i t y

Tii s l e c t u r e i s a l l a b

  • u

t h

  • w

t

  • d

e s c r i b e t h e p e r f

  • r

m a n c e

  • f

a n a l g

  • r

i t h m L a s t t i m e w e h a d t h r e e v e r s i

  • n

s

  • f

t h e fj l e

  • r

e a d i n g p r

  • g

r a m . F

  • r

a fj l e

  • f

s i z e n :

  • Tie

fj r s t

  • n

e n e e d e d t

  • c
  • p

y n

2

/ 2 c h a r a c t e r s

  • Tie

s e c

  • n

d

  • n

e n e e d e d t

  • c
  • p

y n

2

/ 2 c h a r a c t e r s

  • Tie

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

  • c
  • p

y 2 n c h a r a c t e r s

W e w

  • r

k e d

  • u

t t h e s e f

  • r

m u l a s , b u t i t w a s a b i t

  • f

w

  • r

k – n

  • w

w e ' l l s e e a n e a s i e r w a y

slide-3
SLIDE 3

B i g i d e a : i g n

  • r

e c

  • n

s t a n t f a c t

  • r

s !

slide-4
SLIDE 4

W h y d

  • w

e i g n

  • r

e c

  • n

s t a n t f a c t

  • r

s ?

W e l l , w h e n n i s 1 . . .

  • l
  • g

2

n i s 2

  • n

i s 1

  • n

2

i s 1

  • 2

n

i s a n u m b e r w i t h 3 , d i g i t s . . .

G i v e n t w

  • a

l g

  • r

i t h m s :

  • Tie

fj r s t t a k e s 1 l

  • g

2

n s t e p s t

  • r

u n

  • Tie

s e c

  • n

d t a k e s . 1 × 2

n

Tie fj r s t i s m i l e s b e t t e r ! C

  • n

s t a n t f a c t

  • r

s n

  • r

m a l l y d

  • n

' t m a t t e r

slide-5
SLIDE 5

B i g O n

  • t

a t i

  • n

I n s t e a d

  • f

s a y i n g . . .

  • Tie

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

  • n

c

  • p

i e s n

2

/ 2 c h a r a c t e r s

  • Tie

s e c

  • n

d c

  • p

i e s n

2

/ 2 c h a r a c t e r s

  • Tie

t h i r d c

  • p

i e s 2 n c h a r a c t e r s

W e w i l l j u s t s a y . . .

  • Tie

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

  • n

c

  • p

i e s O ( n

2

) c h a r a c t e r s

  • Tie

s e c

  • n

d c

  • p

i e s O ( n

2

) c h a r a c t e r s

  • Tie

t h i r d c

  • p

i e s O ( n ) c h a r a c t e r s

O ( n

2

) me a n s “ p r

  • p
  • r

t i

  • n

a l t

  • n

2

” ( a l mo s t )

slide-6
SLIDE 6

T i m e c

  • m

p l e x i t y

S u p p

  • s

e a n a l g

  • r

i t h m t a k e s n

2

/ 2 s t e p s , a n d e a c h s t e p t a k e s 1 n s t

  • r

u n

  • Tie

t

  • t

a l t i m e t a k e n i s 5 n

2

n s

  • Tii

s i s O ( n

2

)

  • Tie

n u m b e r

  • f

s t e p s t a k e n i s a l s

  • O

( n

2

)

I t d

  • e

s n ' t m a t t e r w h e t h e r w e c

  • u

n t s t e p s

  • r

t i m e ! W e s a y t h a t t h e a l g

  • r

i t h m h a s O ( n

2

) t i m e c

  • m

p l e x i t y

  • r

s i m p l y c

  • m

p l e x i t y

slide-7
SLIDE 7

W h y i g n

  • r

e c

  • n

s t a n t f a c t

  • r

s ?

B i g O r e a l l y s i m p l i fj e s t h i n g s :

  • A

s m a l l p h r a s e l i k e O ( n

2

) t e l l s y

  • u

a l

  • t
  • I

t ' s e a s i e r t

  • c

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

  • r

m u l a

  • W

e g e t t h e s a m e a n s w e r w h e t h e r w e c

  • u

n t n u m b e r

  • f

s t a t e m e n t s e x e c u t e d

  • r

t i m e t a k e n (

  • r

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

  • f

e l e m e n t s c

  • p

i e d ) – s

  • w

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

  • u

n t

O n t h e

  • t

h e r h a n d :

  • S
  • m

e t i m e s w e d

  • c

a r e a b

  • u

t c

  • n

s t a n t f a c t

  • r

s !

B i g O i s n

  • r

m a l l y a g

  • d

c

  • m

p r

  • m

i s e

slide-8
SLIDE 8

W h a t h a p p e n s w i t h

  • u

t b i g O ?

H

  • w

m a n y s t e p s d

  • e

s t h i s f u n c t i

  • n

t a k e

  • n

a n a r r a y

  • f

l e n g t h n ( i n t h e w

  • r

s t c a s e ) ?

O b j e c t s e a r c h ( O b j e c t [ ] a , O b j e c t x ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) { i f ( a [ i ] . e q u a l s ( t a r g e t ) ) r e t u r n a [ i ] ; } r e t u r n n u l l ; }

A s s u m e t h a t l

  • p

b

  • d

y t a k e s 1 s t e p

slide-9
SLIDE 9

W h a t h a p p e n s w i t h

  • u

t b i g O ?

H

  • w

m a n y s t e p s d

  • e

s t h i s f u n c t i

  • n

t a k e

  • n

a n a r r a y

  • f

l e n g t h n ( i n t h e w

  • r

s t c a s e ) ?

O b j e c t s e a r c h ( O b j e c t [ ] a , O b j e c t x ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) { i f ( a [ i ] . e q u a l s ( t a r g e t ) ) r e t u r n a [ i ] ; } r e t u r n n u l l ; }

A n s w e r : n

slide-10
SLIDE 10

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < a . l e n g t h ; j + + ) i f ( a [ i ] . e q u a l s ( a [ j ] ) & & i ! = j ) r e t u r n f a l s e ; r e t u r n t r u e ; }

slide-11
SLIDE 11

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < a . l e n g t h ; j + + ) i f ( a [ i ] . e q u a l s ( a [ j ] ) & & i ! = j ) r e t u r n f a l s e ; r e t u r n t r u e ; }

O u t e r l

  • p

r u n s n t i m e s E a c h t i m e , i n n e r l

  • p

r u n s n t i m e s T

  • t

a l : n × n = n

2

slide-12
SLIDE 12

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < i ; j + + ) i f ( a [ i ] . e q u a l s ( a [ j ] ) ) r e t u r n f a l s e ; r e t u r n t r u e ; }

L

  • p

r u n s t

  • i

i n s t e a d

  • f

n

slide-13
SLIDE 13

S

  • m

e h a r d s u m s

Wh e n i = , i n n e r l

  • p

r u n s t i m e s Wh e n i = 1 , i n n e r l

  • p

r u n s 1 t i m e … Wh e n i = n

  • 1

, i n n e r l

  • p

r u n s n

  • 1

t i m e s T

  • t

a l :

  • =

+ 1 + 2 + … + n

  • 1

w h i c h i s n ( n

  • 1

) / 2

i=0 n−1

i

slide-14
SLIDE 14

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < i ; j + + ) i f ( a [ i ] . e q u a l s ( a [ j ] ) ) r e t u r n f a l s e ; r e t u r n t r u e ; }

A n s w e r : n ( n

  • 1

) / 2

slide-15
SLIDE 15

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < i ; j + + ) f

  • r

( i n t k = ; k < j ; k + + ) “ s

  • m

e t h i n g t h a t t a k e s 1 s t e p ” }

slide-16
SLIDE 16

M

  • r

e h a r d s u m s

O u t e r l

  • p

: i g

  • e

s f r

  • m

t

  • n
  • 1

Mi d d l e l

  • p

: j g

  • e

s f r

  • m

t

  • i
  • 1

I n n e r l

  • p

: k g

  • e

s f r

  • m

t

  • j
  • 1

C

  • u

n t s : h

  • w

m a n y v a l u e s i , j , k w h e r e ≤ i < n , ≤ j < i , ≤ k ≤ j

i=0 n−1

j=0 i−1

k=0 i−1

1

slide-17
SLIDE 17

M

  • r

e h a r d s u m s

C

  • u

n t s : h

  • w

m a n y v a l u e s i , j , k w h e r e ≤ i < n , ≤ j < i , ≤ k ≤ j

i=0 n−1

j=0 i−1

k=0 i−1

1

I h a v e n

  • i

d e a h

  • w

t

  • s
  • l

v e t h i s ! W

  • l

f r a m A l p h a s a y s i t ' s n ( n

  • 1

) ( n

  • 2

) / 6

slide-18
SLIDE 18

W h a t a b

  • u

t t h i s

  • n

e ?

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < i ; j + + ) f

  • r

( i n t k = ; k < j ; k + + ) “ s

  • m

e t h i n g t h a t t a k e s 1 s t e p ” }

A n s w e r : n ( n

  • 1

) ( n

  • 2

) / 6 , a p p a r e n t l y

slide-19
SLIDE 19

T h i s i s j u s t h

  • r

r i b l e ! I s n ' t t h e r e a b e t t e r w a y ?

slide-20
SLIDE 20

U s i n g b i g O c

  • m

p l e x i t y

b

  • l

e a n u n i q u e ( O b j e c t [ ] a ) { f

  • r

( i n t i = ; i < a . l e n g t h ; i + + ) f

  • r

( i n t j = ; j < i ; j + + ) f

  • r

( i n t k = ; k < j ; k + + ) “ s

  • m

e t h i n g t h a t t a k e s 1 s t e p ” }

Tir e e n e s t e d l

  • p

s , a l l r u n n i n g f r

  • m

t

  • n

. . . A n s w e r : O ( n

3

) !

slide-21
SLIDE 21

W h y i g n

  • r

e c

  • n

s t a n t f a c t

  • r

s ? ( a g a i n )

B i g O r e a l l y s i m p l i fj e s t h i n g s :

  • A

s m a l l p h r a s e l i k e O ( n

2

) t e l l s y

  • u

a l

  • t
  • I

t ' s e a s i e r t

  • c

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

  • r

m u l a

  • W

e g e t t h e s a m e a n s w e r w h e t h e r w e c

  • u

n t n u m b e r

  • f

s t a t e m e n t s e x e c u t e d

  • r

t i m e t a k e n (

  • r

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

  • f

e l e m e n t s c

  • p

i e d ) – s

  • w

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

  • u

n t

O n t h e

  • t

h e r h a n d :

  • S
  • m

e t i m e s w e d

  • c

a r e a b

  • u

t c

  • n

s t a n t f a c t

  • r

s !

B i g O i s n

  • r

m a l l y a g

  • d

c

  • m

p r

  • m

i s e

slide-22
SLIDE 22

W h y i g n

  • r

e c

  • n

s t a n t f a c t

  • r

s ? ( a g a i n )

B i g O r e a l l y s i m p l i fj e s t h i n g s :

  • A

s m a l l p h r a s e l i k e O ( n

2

) t e l l s y

  • u

a l

  • t
  • I

t ' s e a s i e r t

  • c

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

  • r

m u l a

  • W

e g e t t h e s a m e a n s w e r w h e t h e r w e c

  • u

n t n u m b e r

  • f

s t a t e m e n t s e x e c u t e d

  • r

t i m e t a k e n (

  • r

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

  • f

e l e m e n t s c

  • p

i e d ) – s

  • w

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

  • u

n t

O n t h e

  • t

h e r h a n d :

  • S
  • m

e t i m e s w e d

  • c

a r e a b

  • u

t c

  • n

s t a n t f a c t

  • r

s !

B i g O i s n

  • r

m a l l y a g

  • d

c

  • m

p r

  • m

i s e

I s n ' t i t ! O u r l

  • n

g c a l c u l a t i

  • n
  • n

l y t

  • l

d u s h

  • w

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

  • r

i t h m t a k e s , n

  • t

h

  • w

m u c h t i m e ! B u t n

  • r

m a l l y n

  • t

e n

  • u

g h t

  • g
  • t
  • a

l l t h i s t r

  • u

b l e !

slide-23
SLIDE 23

T h e r e s t

  • f

t h e l e c t u r e

H

  • w

t

  • c

a l c u l a t e b i g

  • O

c

  • m

p l e x i t y :

  • W

e w i l l fj r s t h a v e t

  • d

e fj n e f

  • r

m a l l y w h a t i t m e a n s f

  • r

a n a l g

  • r

i t h m t

  • h

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

  • m

p l e x i t y

  • W

e w i l l t h e n c

  • m

e u p w i t h s

  • m

e r u l e s f

  • r

c a l c u l a t i n g c

  • m

p l e x i t y

  • T
  • c
  • m

e u p w i t h t h

  • s

e r u l e s , w e w i l l h a v e t

  • d

h a r d s u m s ” , b u t

  • n

c e w e h a v e t h e r u l e s w e c a n f

  • r

g e t t h e s u m s

  • (

v e r y

  • c

c a s i

  • n

a l l y , y

  • u

m i g h t s t i l l h a v e t

  • d
  • t

h e s u m s y

  • u

r s e l f )

slide-24
SLIDE 24

B i g O , f

  • r

m a l l y

B i g O m e a s u r e s t h e g r

  • w

t h

  • f

a m a t h e m a t i c a l f u n c t i

  • n
  • T

y p i c a l l y a f u n c t i

  • n

T ( n ) g i v i n g t h e n u m b e r

  • f

s t e p s t a k e n b y a n a l g

  • r

i t h m

  • n

i n p u t

  • f

s i z e n

  • B

u t c a n a l s

  • b

e u s e d t

  • m

e a s u r e s p a c e c

  • m

p l e x i t y ( m e m

  • r

y u s a g e )

  • r

a n y t h i n g e l s e

F

  • r

m a l l y , w e s a y “ T ( n ) i s O ( f ( n ) ) ”

  • E

. g . , “ T ( n ) i s O ( n

2

) ”

Tii s m e a n s :

  • T

( n ) ≤ a × f ( n ) , f

  • r

s

  • m

e c

  • n

s t a n t a ( i . e . , T ( n ) i s p r

  • p
  • r

t i

  • n

a l t

  • f

( n )

  • r

s ma l l e r )

  • B

u t t h i s n e e d

  • n

l y h

  • l

d f

  • r

a l l n a b

  • v

e s

  • m

e t h r e s h

  • l

d n

slide-25
SLIDE 25

A n e x a m p l e : n

2

+ 2 n + 3 i s O ( n

2

)

n

2

+ 2 n + 3 ≤ 2 n

2

f

  • r

n ≥ 3 n = 3 c = 2

slide-26
SLIDE 26

E x e r c i s e s

  • I

s n

2

+ 2 n + 3 i n O ( n

3

) ?

  • I

s 3 n + 5 i n O ( n ) ?

  • Wh

y d

  • w

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

  • l

d ” n ?

slide-27
SLIDE 27
slide-28
SLIDE 28

G r

  • w

t h r a t e s

I m a g i n e t h a t w e d

  • u

b l e t h e i n p u t s i z e f r

  • m

n t

  • 2

n . I f a n a l g

  • r

i t h m i s . . .

  • O

( 1 ) , t h e n i t t a k e s t h e s a m e t i m e a s b e f

  • r

e

  • O

( l

  • g

n ) , t h e n i t t a k e s a c

  • n

s t a n t a m

  • u

n t m

  • r

e

  • O

( n ) , t h e n i t t a k e s t w i c e a s l

  • n

g

  • O

( n l

  • g

n ) , t h e n i t t a k e s t w i c e a s l

  • n

g p l u s a l i t t l e b i t m

  • r

e

  • O

( n

2

) , t h e n i t t a k e s f

  • u

r t i m e s a s l

  • n

g

I f a n a l g

  • r

i t h m i s O ( 2

n

) , t h e n a d d i n g

  • n

e e l e m e n t m a k e s i t t a k e t w i c e a s l

  • n

g

slide-29
SLIDE 29
slide-30
SLIDE 30

A d d i n g b i g O ( a h i e r a r c h y )

O ( 1 ) < O ( l

  • g

n ) < O ( n ) < O ( n l

  • g

n ) < O ( n

2

) < O ( n

3

) < O ( 2

n

) Wh e n a d d i n g a t e r m l

  • w

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

  • n

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

  • w

e r

  • c
  • m

p l e x i t y t e r m d i s a p p e a r s :

O ( 1 ) + O ( l

  • g

n ) = O ( l

  • g

n ) O ( l

  • g

n ) + O ( n

k

) = O ( n

k

) ( i f k ≥ ) O ( n

j

) + O ( n

k

) = O ( n

k

) , i f j ≤ k O ( n

k

) + O ( 2

n

) = O ( 2

n

)

slide-31
SLIDE 31

A n e x a m p l e : n

2

+ 2 n + 3 i s O ( n

2

)

U s e h i e r a r c h y : n

2

+ 2 n + 3 = O ( n

2

) + O ( n ) + O ( 1 ) = O ( n

2

)

slide-32
SLIDE 32

Q u i z

Wh a t a r e t h e s e i n B i g O n

  • t

a t i

  • n

?

  • n

2

+ 1 1

  • 2

n

3

+ 3 n – 1

  • n

4

+ 2

n

slide-33
SLIDE 33

J u s t u s e h i e r a r c h y !

n

2

+ 1 1 = O ( n

2

) + O ( 1 ) = O ( n

2

) 2 n

3

+ 3 n – 1 = O ( n

3

) + O ( n ) + O ( 1 ) = O ( n

3

) n

4

+ 2

n

= O ( n

4

) + O ( 2

n

) = O ( 2

n

)