B e t t e r s o r t i n g a l g o r i t h ms ( - - PowerPoint PPT Presentation

b e t t e r s o r t i n g a l g o r i t h ms w e i s s c
SMART_READER_LITE
LIVE PREVIEW

B e t t e r s o r t i n g a l g o r i t h ms ( - - PowerPoint PPT Presentation

B e t t e r s o r t i n g a l g o r i t h ms ( W e i s s c h a p t e r 8 . 5 8 . 6 ) D i v i d e a n d c o n q u e r V e r y g e n e r a l n a m e f o r a t y p e


slide-1
SLIDE 1

B e t t e r s

  • r

t i n g a l g

  • r

i t h ms ( W e i s s c h a p t e r 8 . 5 – 8 . 6 )

slide-2
SLIDE 2

D i v i d e a n d c

  • n

q u e r

V e r y g e n e r a l n a m e f

  • r

a t y p e

  • f

r e c u r s i v e a l g

  • r

i t h m Y

  • u

h a v e a p r

  • b

l e m t

  • s
  • l

v e .

  • S

p l i t t h a t p r

  • b

l e m i n t

  • s

m a l l e r s u b p r

  • b

l e m s

  • R

e c u r s i v e l y s

  • l

v e t h

  • s

e s u b p r

  • b

l e m s

  • C
  • m

b i n e t h e s

  • l

u t i

  • n

s f

  • r

t h e s u b p r

  • b

l e m s t

  • s
  • l

v e t h e w h

  • l

e p r

  • b

l e m

slide-3
SLIDE 3

T

  • s
  • l

v e t h i s . . .

slide-4
SLIDE 4

1 . S p l i t t h e p r

  • b

l e m i n t

  • s

u b p r

  • b

l e m s 2 . R e c u r s i v e l y s

  • l

v e t h e s u b p r

  • b

l e m s 3 . C

  • m

b i n e t h e s

  • l

u t i

  • n

s

slide-5
SLIDE 5

Q u i c k s

  • r

t

P i c k a n e l e m e n t f r

  • m

t h e a r r a y , c a l l e d t h e p i v

  • t

P a r t i t i

  • n

t h e a r r a y :

  • F

i r s t c

  • m

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

  • t

, t h e n t h e p i v

  • t

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

  • t

R e c u r s i v e l y q u i c k s

  • r

t t h e t w

  • p

a r t i t i

  • n

s

slide-6
SLIDE 6

Q u i c k s

  • r

t

5 3 9 2 8 7 3 2 1 4 S a y t h e p i v

  • t

i s 5 . P a r t i t i

  • n

t h e a r r a y i n t

  • :

a l l e l e m e n t s l e s s t h a n 5 , t h e n 5 , t h e n a l l e l e m e n t s g r e a t e r t h a n 5 3 3 2 2 1 4 5 9 8 7

L e s s t h a n t h e p i v

  • t

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

  • t
slide-7
SLIDE 7

Q u i c k s

  • r

t

N

  • w

r e c u r s i v e l y q u i c k s

  • r

t t h e t w

  • p

a r t i t i

  • n

s ! 3 3 2 2 1 4 5 9 8 7 1 2 2 3 3 4 5 7 8 9

Q u i c k s

  • r

t Q u i c k s

  • r

t

slide-8
SLIDE 8

P s e u d

  • c
  • d

e

/ / c a l l a s s

  • r

t ( a , , a . l e n g t h

  • 1

) ; v

  • i

d s

  • r

t ( i n t [ ] a , i n t l

  • w

, i n t h i g h ) { i f ( l

  • w

> = h i g h ) r e t u r n ; i n t p i v

  • t

= p a r t i t i

  • n

( a , l

  • w

, h i g h ) ; / / a s s u m e t h a t p a r t i t i

  • n

r e t u r n s t h e / / i n d e x w h e r e t h e p i v

  • t

n

  • w

i s s

  • r

t ( a , l

  • w

, p i v

  • t
  • 1

) ; s

  • r

t ( a , p i v

  • t

+ 1 , h i g h ) ; } C

  • m

m

  • n
  • p

t i m i s a t i

  • n

: s w i t c h t

  • i

n s e r t i

  • n

s

  • r

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

slide-9
SLIDE 9

C

  • m

p l e x i t y

  • f

q u i c k s

  • r

t

I n t h e b e s t c a s e , p a r t i t i

  • n

i n g s p l i t s a n a r r a y

  • f

s i z e n i n t

  • t

w

  • h

a l v e s

  • f

s i z e n / 2 :

n n / 2 n / 2

slide-10
SLIDE 10

C

  • m

p l e x i t y

  • f

q u i c k s

  • r

t

Tie r e c u r s i v e c a l l s w i l l s p l i t t h e s e a r r a y s i n t

  • f
  • u

r a r r a y s

  • f

s i z e n / 4 :

n n / 2 n / 2 n / 4 n / 4 n / 4 n / 4

slide-11
SLIDE 11

n n / 2 n / 2 n / 4 n / 4 n / 4 n / 4 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 l

  • g

n “ l e v e l s ” O ( n ) t i me p e r l e v e l T

  • t

a l t i me i s O ( n l

  • g

n ) !

slide-12
SLIDE 12

C

  • m

p l e x i t y

  • f

q u i c k s

  • r

t

B u t t h a t ' s t h e b e s t c a s e ! I n t h e w

  • r

s t c a s e , e v e r y t h i n g i s g r e a t e r t h a n t h e p i v

  • t

( s a y )

  • Tie

r e c u r s i v e c a l l h a s s i z e n

  • 1
  • Wh

i c h i n t u r n r e c u r s e s w i t h s i z e n

  • 2

, e t c .

  • A

m

  • u

n t

  • f

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

  • n

i n g : n + ( n

  • 1

) + ( n

  • 2

) + … + 1 = O ( n

2

)

slide-13
SLIDE 13

n n

  • 1

n

  • 2

n

  • 3

n “ l e v e l s ” O ( n ) t i me p e r l e v e l T

  • t

a l t i me i s O ( n

2

) !

slide-14
SLIDE 14

W

  • r

s t c a s e s

Wh e n w e p i c k t h e fj r s t e l e m e n t a s t h e p i v

  • t

, w e g e t t h i s w

  • r

s t c a s e f

  • r

:

  • S
  • r

t e d a r r a y s

  • R

e v e r s e

  • s
  • r

t e d a r r a y s

slide-15
SLIDE 15

C

  • m

p l e x i t y

  • f

q u i c k s

  • r

t

Q u i c k s

  • r

t w

  • r

k s w e l l w h e n t h e p i v

  • t

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

  • r
  • u

g h l y e q u a l p a r t s

  • Me

d i a n

  • f
  • t

h r e e : p i c k fj r s t , m i d d l e a n d l a s t e l e m e n t

  • f

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

  • f

t h

  • s

e t h r e e

  • P

i c k p i v

  • t

a t r a n d

  • m

: g i v e s O ( n l

  • g

n ) e x p e c t e d ( p r

  • b

a b i l i s t i c ) c

  • m

p l e x i t y

I n t r

  • s
  • r

t : d e t e c t w h e n w e g e t i n t

  • t

h e O ( n

2

) c a s e a n d s w i t c h t

  • a

d i fg e r e n t a l g

  • r

i t h m ( e . g . h e a p s

  • r

t )

slide-16
SLIDE 16

4 8

P a r t i t i

  • n

i n g a l g

  • r

i t h m

1 . P i c k a p i v

  • t

( h e r e 5 ) 5 3 9 2 7 3 2 1

slide-17
SLIDE 17

4 8

P a r t i t i

  • n

i n g a l g

  • r

i t h m

2 . S e t t w

  • i

n d e x e s , l

  • w

a n d h i g h I d e a : e v e r y t h i n g t

  • t

h e l e f t

  • f

l

  • w

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

  • t

( c

  • l
  • u

r e d y e l l

  • w

) , e v e r y t h i n g t

  • t

h e r i g h t

  • f

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

  • t

( g r e e n ) 5 3 9 2 7 3 2 1

l

  • w

h i g h

slide-18
SLIDE 18

4 8

P a r t i t i

  • n

i n g a l g

  • r

i t h m

3 . Mo v e l

  • w

r i g h t u n t i l y

  • u

fj n d s

  • m

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

  • t

5 3 9 2 7 3 2 1

l

  • w

h i g h

slide-19
SLIDE 19

4 8

P a r t i t i

  • n

i n g a l g

  • r

i t h m

3 . Mo v e l

  • w

r i g h t u n t i l y

  • u

fj n d s

  • m

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

  • r

e q u a l t

  • t

h e p i v

  • t

w h i l e ( a [ l

  • w

] < p i v

  • t

) l

  • w

+ + ; 5 3 9 2 7 3 2 1

h i g h l

  • w
slide-20
SLIDE 20

4 8

P a r t i t i

  • n

i n g a l g

  • r

i t h m

3 . Mo v e l

  • w

r i g h t u n t i l y

  • u

fj n d s

  • m

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

  • t

w h i l e ( a [ l

  • w

] < p i v

  • t

) l

  • w

+ + ; 5 3 9 2 7 3 2 1

l

  • w

h i g h

slide-21
SLIDE 21

P a r t i t i

  • n

i n g a l g

  • r

i t h m

3 . Mo v e h i g h l e f t u n t i l y

  • u

fj n d s

  • m

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

  • t

w h i l e ( a [ h i g h ] < p i v

  • t

) h i g h

  • ;

4 8 5 3 9 2 7 3 2 1

l

  • w

h i g h

slide-22
SLIDE 22

P a r t i t i

  • n

i n g a l g

  • r

i t h m

4 . S w a p t h e m ! s w a p ( a [ l

  • w

] , a [ h i g h ] ) ; 9 8 5 3 4 2 7 3 2 1

l

  • w

h i g h

slide-23
SLIDE 23

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t l

  • w

+ + ; h i g h

  • ;

9 8 5 3 4 2 7 3 2 1

l

  • w

h i g h

slide-24
SLIDE 24

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t w h i l e ( a [ l

  • w

] < p i v

  • t

) l

  • w

+ + ; 9 8 5 3 4 2 7 3 2 1

l

  • w

h i g h

slide-25
SLIDE 25

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 8 5 3 4 2 7 3 2 1

l

  • w

h i g h

slide-26
SLIDE 26

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t w h i l e ( a [ h i g h ] < p i v

  • t

) h i g h + + ; 9 8 5 3 4 2 7 3 2 1

l

  • w

h i g h

slide-27
SLIDE 27

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t s w a p ( a [ l

  • w

] , a [ h i g h ] ) ; 9 1 5 3 4 2 7 3 2 8

l

  • w

h i g h

slide-28
SLIDE 28

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t l

  • w

+ + ; h i g h

  • ;

9 1 5 3 4 2 7 3 2 8

l

  • w

h i g h

slide-29
SLIDE 29

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 1 5 3 4 2 7 3 2 8

l

  • w

h i g h

slide-30
SLIDE 30

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 1 5 3 4 2 7 3 2 8

l

  • w

h i g h

slide-31
SLIDE 31

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 1 5 3 4 2 2 3 7 8

l

  • w

h i g h

slide-32
SLIDE 32

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 1 5 3 4 2 2 3 7 8

l

  • w

h i g h

slide-33
SLIDE 33

P a r t i t i

  • n

i n g a l g

  • r

i t h m

5 . A d v a n c e l

  • w

a n d h i g h a n d r e p e a t 9 1 5 3 4 2 2 3 7 8

l

  • w

h i g h

slide-34
SLIDE 34

P a r t i t i

  • n

i n g a l g

  • r

i t h m

6 . Wh e n l

  • w

a n d h i g h h a v e c r

  • s

s e d , w e a r e fj n i s h e d ! B u t t h e p i v

  • t

i s i n t h e w r

  • n

g p l a c e . 9 1 5 3 4 2 2 3 7 8

l

  • w

h i g h

slide-35
SLIDE 35

P a r t i t i

  • n

i n g a l g

  • r

i t h m

7 . L a s t s t e p : s w a p p i v

  • t

w i t h h i g h 9 1 3 3 4 2 2 5 7 8

l

  • w

h i g h

slide-36
SLIDE 36

D e t a i l s

1 . Wh a t t

  • d
  • i

f t h e p i v

  • t

i s n

  • t

t h e fj r s t e l e m e n t ?

  • S

w a p t h e p i v

  • t

w i t h t h e fj r s t e l e m e n t b e f

  • r

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

  • n

i n g !

slide-37
SLIDE 37

D e t a i l s

2 . Wh a t h a p p e n s i f t h e a r r a y c

  • n

t a i n s m a n y d u p l i c a t e s ?

  • N
  • t

i c e t h a t w e

  • n

l y a d v a n c e a [ l

  • w

] a s l

  • n

g a s a [ l

  • w

] < p i v

  • t
  • I

f a [ l

  • w

] = = p i v

  • t

w e s t

  • p

, s a m e f

  • r

a [ h i g h ]

  • I

f t h e a r r a y c

  • n

t a i n s j u s t

  • n

e e l e m e n t

  • v

e r a n d

  • v

e r a g a i n , l

  • w

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

  • H

e n c e w e g e t e q u a l

  • s

i z e d p a r t i t i

  • n

s

slide-38
SLIDE 38

P i v

  • t

Wh i c h p i v

  • t

s h

  • u

l d w e p i c k ?

  • F

i r s t e l e m e n t : g i v e s O ( n

2

) b e h a v i

  • u

r f

  • r

a l r e a d y

  • s
  • r

t e d l i s t s

  • Me

d i a n

  • f
  • t

h r e e : p i c k fj r s t , m i d d l e a n d l a s t e l e m e n t

  • f

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

  • f

t h

  • s

e t h r e e

  • P

i c k p i v

  • t

a t r a n d

  • m

: g i v e s O ( n l

  • g

n ) e x p e c t e d ( p r

  • b

a b i l i s t i c ) c

  • m

p l e x i t y

slide-39
SLIDE 39

Q u i c k s

  • r

t

T y p i c a l l y t h e f a s t e s t s

  • r

t i n g a l g

  • r

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

  • d

e t a i l s !

  • Mu

s t c h

  • s

e a g

  • d

p i v

  • t

t

  • a

v

  • i

d O ( n

2

) c a s e

  • Mu

s t t a k e c a r e w i t h d u p l i c a t e s

  • S

w i t c h t

  • i

n s e r t i

  • n

s

  • r

t f

  • r

s m a l l a r r a y s t

  • g

e t b e t t e r c

  • n

s t a n t f a c t

  • r

s

slide-40
SLIDE 40

M e r g e s

  • r

t

W e c a n m e r g e t w

  • s
  • r

t e d l i s t s i n t

  • n

e i n l i n e a r t i m e : 7 9 2 3 5 8 1 2 3 4 7 9 2 3 5 8 1 2 3 4

slide-41
SLIDE 41

M e r g e s

  • r

t

A n

  • t

h e r d i v i d e

  • a

n d

  • c
  • n

q u e r a l g

  • r

i t h m T

  • m

e r g e s

  • r

t a l i s t :

  • S

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

  • t

w

  • e

q u a l p a r t s

  • R

e c u r s i v e l y m e r g e s

  • r

t t h e t w

  • p

a r t s

  • M

e r g e t h e t w

  • s
  • r

t e d l i s t s t

  • g

e t h e r

slide-42
SLIDE 42

M e r g e s

  • r

t

1 . S p l i t t h e l i s t i n t

  • t

w

  • e

q u a l p a r t s 4 8 5 3 9 2 7 3 2 1 8 5 3 9 2 4 7 3 2 1

slide-43
SLIDE 43

M e r g e s

  • r

t

2 . R e c u r s i v e l y m e r g e s

  • r

t t h e t w

  • p

a r t s 8 5 3 9 2 4 7 3 2 1 8 5 3 9 2 4 7 3 2 1

slide-44
SLIDE 44

M e r g e s

  • r

t

3 . M e r g e t h e t w

  • s
  • r

t e d l i s t s t

  • g

e t h e r 7 9 2 3 5 8 1 2 3 4 7 9 2 3 5 8 1 2 3 4

slide-45
SLIDE 45

C

  • m

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

Me r g e s

  • r

t ' s d i v i d e

  • a

n d

  • c
  • n

q u e r a p p r

  • a

c h i s s i m i l a r t

  • q

u i c k s

  • r

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

  • e

q u a l l y

  • s

i z e d p i e c e s ! H e n c e O ( n l

  • g

n ) , j u s t l i k e t h e b e s t c a s e f

  • r

q u i c k s

  • r

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

  • r

s t c a s e f

  • r

m e r g e s

  • r

t

slide-46
SLIDE 46

n n / 2 n / 2 n / 4 n / 4 n / 4 n / 4 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 n / 8 l

  • g

n “ l e v e l s ” O ( n ) t i me p e r l e v e l T

  • t

a l t i me i s O ( n l

  • g

n ) !

slide-47
SLIDE 47

M e r g e s

  • r

t v s q u i c k s

  • r

t

Me r g e s

  • r

t :

  • N
  • t

i n

  • p

l a c e

  • O

( n l

  • g

n )

  • O

n l y r e q u i r e s s e q u e n t i a l a c c e s s t

  • t

h e l i s t – t h i s m a k e s i t g

  • d

i n f u n c t i

  • n

a l p r

  • g

r a m m i n g

Q u i c k s

  • r

t :

  • I

n

  • p

l a c e

  • O

( n l

  • g

n ) b u t O ( n

2

) i f y

  • u

a r e n

  • t

c a r e f u l

  • W
  • r

k s

  • n

a r r a y s

  • n

l y ( r a n d

  • m

a c c e s s )

B

  • t

h t h e b e s t i n t h e i r fj e l d s !

  • Q

u i c k s

  • r

t b e s t i m p e r a t i v e a l g

  • r

i t h m

  • Me

r g e s

  • r

t b e s t f u n c t i

  • n

a l a l g

  • r

i t h m