ÿþS o r t o w a n i e s z y b k i e
Q u i c k _ S o r t
T o n y H o a r e ( 1 9 6 0 )
A l g o r y t m s o r t o w a n i a Q u i c k S o r t
C e c h y a l g o r y t m u :
P r z e c i t n a z Bo |o n o [ o b l i c z e n i o w a O ( n l g n ) ,
P e s y m i s t y c z n a z Bo |o n o [ O ( n 2 ) ,
S o r t o w a n i e w m i e j s c u ,
N i e s t a b i l n y ,
Z a s t o s o w a n i e t e c h n i k i d z i e l i z w y c i |a j ,
A l g o r y t m r e k u r e n c y j n y .
R o z p r o s z o n e s o r t o w a n i e ,
W p By w d a n y c h w e j [c i o w y c h n a z Bo |o n o o [ o b l i c z e n i o w ,
Aa t w a i m p l e m e n t a c j a ,
S p r a w d z a s i w s o r t o w a n i u [r e d n i c h i d u |y c h z b i o r ó w d a n y c h .
A S D L J S
A l g o r y t m s o r t o w a n i a Q u i c k S o r t
P o d s t a w o w y e t a p a l g o r y t m u :
1 . W y b ó r e l e m e n t u o s i o w e g o ( d z i e l c e g o ) ( p i v o t p o i n t ) v = A [ q ] ,
2 . P o g r u p o w a n i e e l e m e n t ó w t a b l i c y A [ l e w y . . p r a w y ] w s p o s ó b n a s t p u j c y :
|a d e n z e l e m e n t ó w A [ l e w y ] , . . . , A [ q - 1 ] n i e w i k s z y n i | v ,
|a d e n z e l e m e n t ó w A [ q + 1 ] , . . . , A [ p r a w y ] n i e m n i e j s z y n i | v ,
W a r i a n t y s c h e m a t u a l g o r y t m u :
R e k u r e n c y j n y , n i e r e k u r e n c y j n y
W y b ó r e l e m e n t u o s i o w e g o :
p i e r w s z y , [r o d k o w y l u b o s t a t n i ,
l o s o w y ,
m e d i a n a z 3 .
A S D L J S
A l g o r y t m Q u i c k S o r t
Z a k Ba d a j c , |e w y b i e r a n y j e s t e l e m e n t o s i o w y j a k o p i e r w s z y e l e m e n t t a b l i c y t j .
v = A [ l e w y ] o t r z y m u j e m y p o d z i a B:
v
i j
p r a w y
l e w y
e l e m e n t y d" v v e l e m e n t y e" v
p r a w y l e w y
p r a w y
l e w y
D z i e l e n i a t a b l i c y d o k o n u j e p r o c e d u r a p o d z i a Bu ( p a r t i t i o n ) .
A S D L J S
A l g o r y t m s o r t o w a n i a Q u i c k S o r t
D z i a Ba n i e p r o c e d u r y p o d z i a Bu ( e l e m e n t o s i o w y A [ l e w y ] ) :
1 . W y b ó r e l e m e n t u o s i o w e g o n p . v = A [ l e w y ] d z i e l c e g o t a b l i c A [ l e w y . . p r a w y ] ,
2 . P r z e g l d a n i e A [ l e w y + 1 ] , , A [ p r a w y ] o d s t r o n y l e w e j , d o p ó k i n i e z o s t a n i e
z n a l e z i o n y e l e m e n t w i k s z y r ó w n y o d v ,
3 . P r z e g l d a n i e A [ l e w y + 1 ] , , A [ p r a w y ] o d s t r o n y p r a w e j , d o p ó k i n i e z o s t a n i e
z n a l e z i o n y e l e m e n t m n i e j s z y r ó w n y o d v ,
4 . D w a e l e m e n t y , n a k t ó r y c h s i z a t r z y m u j s i i n d e k s y , w y m i e n i a n e s
m i e j s c a m i . P r z e s z u k i w a n i e k o n t y n u u o w a n e j e s t o d l e w e j a p ó zn i e j o d p r a w e j ,
5 . K i e d y i n d e k s y s i s p o t k a j p r o c e s p o d z i a Bu k o Dc z y s i ,
6 . E l e m e n t o s i o w y v z a m i e n i a n y j e s t z o s t a t n i m e l e m e n t e m l e w e j c z [c i t a b l i c y .
A S D L J S
A l g o r y t m s o r t o w a n i a Q u i c k S o r t
M e c h a n i z m s o r t o w a n i a :
w a r t o w n i k
"
"
"
"
6 3 7 4 8 5 2 9
j
i
6 "
"
"
"
5 3 2 4 8 7 9
8
7 9
5
4 3 2
4
2 3
2 3
A S D L J S
A l g o r y t m s o r t o w a n i a Q u i c k S o r t
M e c h a n i z m s o r t o w a n i a :
P a r t i t i o n ( A , l e w y , p r a w y )
{ / / u \y c i e w a r t o w n i k a A [ p r a w y + 1 ] = + " ;
v = A [ l e w y ] ;
i = l e w y ;
j = p r a w y + 1 ;
D O {
D O i = i + 1 ; W H I L E ( A [ i ] <