Beruflich Dokumente
Kultur Dokumente
D IVIDE A ND C ONQUER I
mergesort
counting inversions
closest pair of points
randomized quicksort
median and selection
Divide-and-conquer paradigm
Divide-and-conquer.
(n log n).
SECTION 5.1
Sorting problem
Problem. Given a list of n elements from a totally-ordered universe,
rearrange them in ascending order.
Sorting applications
Obvious applications.
Convex hull.
Closest pair of points.
Interval scheduling / interval partitioning.
Minimum spanning trees (Kruskal's algorithm).
Scheduling to minimize maximum lateness or average completion time.
...
Mergesort
merge results
Merging
Goal. Combine two sorted lists A and B into a sorted whole C.
sorted list A
sorted list B
10
ai
18
11
bj
17
23
10
11
T(n)
if n = 1
T ( n / 2 ) + T ( n / 2 ) + n otherwise
T(n) =
if n = 1
2 T (n / 2) + n
otherwise
assuming n
is a power of 2
Pf 1.
T (n)
T (n / 2)
T (n / 2)
T (n / 4)
T (n / 4)
T (n / 4)
T (n / 4)
= n
2 (n/2)
= n
4 (n/4)
= n
8 (n/8)
= n
log 2 n
T (n / 8) T (n / 8) T (n / 8) T (n / 8)
T (n / 8) T (n / 8) T (n / 8) T (n / 8)
T(n) = n lg n
Proof by induction
Proposition. If T (n) satisfies the following recurrence, then T (n) = n log2 n.
T(n) =
if n = 1
2 T (n / 2) + n
otherwise
assuming n
is a power of 2
Pf 2. [by induction on n]
n log2 n.
T(2n) = 2 T(n) + 2n
= 2 n log2 n + 2n
= 2 n (log2 (2n) 1) + 2n
= 2 n log2 (2n).
10
T(n)
if n = 1
T ( n / 2 ) + T ( n / 2 ) + n otherwise
Base case: n = 1.
Define n1 = n / 2 and n2 = n / 2.
Induction step: assume true for 1, 2, ... , n 1.
T(n)
T(n1) + T(n2) + n
n1 log2 n1 + n2 log2 n2 + n
n1 log2 n2 + n2 log2 n2 + n
= n log2 n2 + n
n (log2 n 1) + n
= n log2 n.
n
n22 =
= dn/2e
dn/2e
l
l dlog2 ne m
m
n2 =
dn/2e
dlog22 ne / 2
2
l2
/ 2m
dlog2ne
ne
dlog222 ne //22
= 22dlog
=2
/2
dlog22 ne
dlog
ne
1
dlog22 n
n22 ee =
2dlog
dlog
2 ne / 2 1
log2 n2 dlog2 ne
1
dlog2 n2 e dlog2 ne
11
SECTION 5.3
Counting inversions
Music site tries to match your song preferences with others.
My rank: 1, 2, , n.
Your rank: a1, a2, , an.
Songs i and j are inverted if i
me
you
Voting theory.
Collaborative filtering.
Measuring the "sortedness" of an array.
Sensitivity analysis of Google's ranking function.
Rank aggregation for meta-searching on the Web.
Nonparametric statistics (e.g., Kendall's tau distance).
Rank Aggregation Methods for the Web
Cynthia Dwork
Ravi Kumar
Moni Naor
Ravi Kumar
Moni Naor
D. Sivakumar
D. Sivakumar
ABSTRACT
ABSTRACT
1.1 Motivation
1.
INTRODUCTION
14
1.1 Motivation
1.
INTRODUCTION
10
10
5-4
10
4-2 4-3 5-2 5-3 8-2 8-3 8-6 8-7 10-2 10-3 10-6 10-7 10-9
output 1 + 3 + 13 = 17
15
Sort A and B.
For each element b B,
- binary search in A to find how elements in A are greater than b.
list A
list B
10
18
14
sort A
17
23
11
16
11
16
17
23
sort B
10
14
18
10
14
18
11
16
17
23
0
16
10
ai
18
11
bj
17
23
10
11
17
SORT-AND-COUNT (L)
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
18
T(n) =
(1)
if n = 1
T ( n / 2 ) + T ( n / 2 ) + (n)
otherwise
19
SECTION 5.4
21
22
23
24
25
26
21
12
27
Observation:
21
= min(12, 21)
12
28
L
7
6
5
21
12
= min(12, 21)
2
1
29
39
31
Pf.
2 rows
30
29
28
27
30
O(n log n)
2 T(n / 2)
min { 1 , 2 }.
Delete all points further than from line L.
O(n)
O(n log n)
O(n)
RETURN .
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
31
T(n) =
(1)
if n = 1
T ( n / 2 ) + T ( n / 2 ) + O(n log n)
otherwise
32
T(n) =
(1)
if n = 1
T ( n / 2 ) + T ( n / 2 ) + (n)
otherwise
33
CHAPTER 7
Randomized quicksort
3-way partition array so that:
the array A
12
11
10
12
11
10
p
the partitioned array A
4
L
6
M
3-way partitioning
can be done in-place
(using n1 compares)
RANDOMIZED-QUICKSORT(R).
_______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
35
12
11
10
13
first partitioning
element in
left subarray
9
3
11
8
2
10
13
12
4
6
5
36
first partitioning
element in
left subarray
9
3
11
8
2
10
13
12
4
6
5
37
first partitioning
element in
left subarray
9
3
11
8
2
10
13
12
4
6
5
38
first partitioning
element in
left subarray
9
3
11
8
2
10
13
12
4
6
5
39
N
N
X
X
N
X
N
X
jjj
i=1
j=i+1
i=1
j=i+1
i=1 j=i+1
j
i=1 j=i+1
N
i+1
N N
NX
i+1
X
X
X
N
N
i+1
222
111
X
X
=
2
N
N
i+1
=
2
X X j1j
ii2i +
+ 111 = 2 i=1
+
i=1 j=2
j=2 j
= 2 i=1
j=2
i+1
j
N
N j=2
i=1
X
X
N
X 111
2N
N
2N
2N X
j1j
j=1 j
2N j=1
j=1
j
ZZZ
N
N
j=1
N
111
Z
2N
dx
2N
dx
2N N xx
dx
1
x=1 x dx
x=1
2N x=1
=
N
= 2N
2N ln
lnx=1
N x
=
2N
ln
N
= 2N ln N
CHAPTER 9
Minimum: k = 1; maximum: k = n.
Median: k = (n + 1) / 2.
O(n) compares for min or max.
O(n log n) compares by sorting.
O(n log k) compares with a binary heap.
Applications. Order statistics; find the "top k"; bottleneck paths,
Q. Can we do it with O(n) compares?
A. Yes! Selection is easier than sorting.
42
Quickselect
3-way partition array so that:
k |L|
k > |L| + |M|
3-way partitioning
can be done in-place
(using n1 compares)
k).
k | L | | M |)
RETURN
p.
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
43
Quickselect analysis
Intuition. Split candy bar uniformly expected size of larger piece is .
T(n) T( n) + n
T(n) 4 n
T(n/2)
44
T(n) =
(1)
if n = 1
otherwise
two subproblems
of different sizes!
45
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
46
medians
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
47
median of
medians
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
48
MOM-SELECT (A, k)
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
n | A |.
IF n < 50 RETURN kth smallest of element of A via mergesort.
Group A into n / 5 groups of 5 elements each (plus extra).
B median of each group of 5.
p MOM-SELECT(B, n / 10)
median of medians
k |L|
k > |L| + |M|
k).
k | L | | M |)
RETURN
p.
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
49
median of
medians p
p.
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
50
median of
medians p
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
51
median of
medians p
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
52
median of
medians p
p.
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
53
median of
medians p
p.
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
54
median of
medians p
p.
29
10
38
37
55
18
24
34
35
36
22
44
52
11
53
12
13
43
20
27
28
23
26
40
19
46
31
49
14
54
30
48
47
32
51
21
45
39
50
15
25
16
41
17
22
N = 54
55
C(n) C( n /5 )+ C (n 3 n /10 ) +
median of
medians
recursive
select
11
computing median of 5
(6 compares per group)
partitioning
(n compares)
if n < 50
11 n
otherwise
5
Claim. T(n) 44 n.
for n 50, 3 n / 10 n / 4
57
Abstract
L
i
L
Theory.
58
Abstract
L
i
L