Professional Documents
Culture Documents
07 Quicksort
07 Quicksort
Quicksort
Hsu, Lih-Hsing
Computer Theory Lab.
Conquer
Combine
Chapter 7 P.2
Computer Theory Lab.
Q U IC K S O R T ( A ,p ,r )
1 if p r
2 th e n q P A R T IT IO N ( A , p ,r )
3 Q U IC K S O R T ( A ,p ,q )
4 Q U IC K S O R T ( A ,q + 1 ,r )
Chapter 7 P.3
Computer Theory Lab.
Partition(A, p, r)
1 x A[r]
2 i p–1
3 for j p to r -1
4 do if A[j] ≤ x
5 then i i + 1
6 exchange A[i] A[j]
7 exchange A[i +1] A[r]
8 return i +1
Chapter 7 P.4
Computer Theory Lab.
1. if p ≤ k ≤ i, then A[k] ≤ x.
2. if i + 1 ≤ k≤ j -1, then A[k] > x.
3. if k = r, then A[k] = x.
Chapter 7 P.5
Computer Theory Lab.
Chapter 7 P.6
Computer Theory Lab.
Complexity:
Partition on A[p…r] is (n)
where n = r –p +1
Chapter 7 P.7
Computer Theory Lab.
T (n ) T (n 1 ) (n )
n n 2
(k ) ( k ) (n )
k 1 k 1
B e s t-c a s e p a rtitio n :
T (n ) 2 T (n / 2 ) (n )
T ( n ) ( n lo g n )
Chapter 7 P.8
Computer Theory Lab.
Chapter 7 P.10
Computer Theory Lab.
R A N D O M IZ E D _ Q U IC K S O R T ( A ,p ,r )
1 if p r
2 th e n
q R A N D O M IZ E D _ P A R T IT IO N ( A , p ,r )
3 R A N D O M IZ E D _ Q U IC K S O R T ( A ,p ,q )
Chapter 7 4 R A N D O M IZ E D _ Q U IC K S O R T ( A ,q + 1 ,r ) P.11
Computer Theory Lab.
guess T ( n ) cn2
T ( n) max (cq 2 c ( n q 1) 2 ) ( n)
0 q n 1
c max ( q 2 (n q 1) 2 ) ( n)
0 q n 1
cn 2 2c ( n 1) ( n)
cn 2
pick the constant c large enough so that the 2 c( n 1 ) term dominates the
( n ) term.
T ( n ) ( n2 )
Chapter 7 P.12
Computer Theory Lab.
7.4-2
S
howth
at q (nq) a
2
chie
vesam
2
ax
imu
m o
ver
q1
,2 1w
,.....,
n h
enq1 o
r qn1
a
ns: 先
令 f(q
)q (nq
) 2 2
0 n/2 n
一
次微: f (q)2q2(nq)4q2n
分 '
n
令 '
)0 4
f (q qn
2 0 q (極小
值)
2
二
次微: f (q)4 (開
分 口向
''
)
上
因
為 1qn1所
以 f(1
)f(n1
)1(n) (
1 相 對
極大)
值2
Chapter 7 P.13
Computer Theory Lab.
Chapter 7 P.14
Computer Theory Lab.
we define
X ij I {zi is compared to zj},
n 1 n
X X ij .
i 1 j i 1
n 1 n
E[ X ] E X ij
i 1 j i 1
n 1 n
E X ij
i 1 j i 1
n 1 n
Pr {zi is compared to zj}
i 1 j i 1
Chapter 7 P.15
Computer Theory Lab.
Chapter 7 P.16
Computer Theory Lab.
n 1 n 2
E[ X ]
i 1 j i 1 j i 1
n 1n i 2
i 1 k 1 k 1
n 1 n 2
i 1 k 1 k
n 1
O (lg n)
i 1
O(n lg n)
Chapter 7 P.17
Computer Theory Lab.
another analysis
T(n)
1 n 1
( T (1 ) T ( n 1 ) ( T ( q ) T ( n q ) ) ( n )
n q 1
T (1 ) 1 1
( T (1 ) T ( n 1 )) O ( n )
T ( n 1 ) O ( n 2 ) n
T(n)
1 n 1
( T (1 ) T ( n 1 ) ( T ( q ) T ( n q ) ) ( n )
n q 1
1 n 1
( T ( q ) T ( n q )) ( n )
n q 1
2 n 1
( T ( k )) ( n )
n k 1
Chapter 7 P.18
Computer Theory Lab.
guess T ( n ) an log n b
2 n 1
T ( n ) ( a k lo g k b ) ( n )
n k 1
2 a n 1 2b
k lo g k (n 1) (n)
n k 1 n
n 1 n 2 lo g n n 2
W e w il l p r o v e k lo g k
k 1 2 8
Chapter 7 P.19
Computer Theory Lab.
2 a 1 2 n 2 2 b (n 1)
T (n ) ( n lo g n ) (n )
n 2 8 n
an
an log n 2 b (n )
4
an
an log n b ( ( n ) b )
4
an log n b
an
C h o o s e a la rg e e n o u g h s o th a t ( n ) b .
4
T ( n ) O ( n lo g n ) .
Chapter 7 P.20
Computer Theory Lab.
n 1 n / 2 1 n 1
k log k k log k k log k
k 1 k 1 k n / 2
n / 2 1 n 1
(log n 1) k log n k
k 1 k n / 2
n 1 n / 2 1
log n k k
k 1 k 1
n ( n 1 ) log n 1 n n
( 1)
2 2 2 2
n 2 log n n 2
2 8
if n 2 .
A n o th e r a p p ro a c h : U s in g
1 2 1
x ln x d x x ln x x 2
Chapter 7 2 4 P.21