Divide and Conquer
Chapter 4
1
Divide and Conquer Chapter 4 1 Integer Multiplication 2 Integer - - PowerPoint PPT Presentation
Divide and Conquer Chapter 4 1 Integer Multiplication 2 Integer Multiplication = Each with n bits x= 1 0 1 1 y= 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 Z= 1 0 0 0 0 1 0 0 3 Integer
Chapter 4
1
2
Each with n bits
x= 1 1 1 y= 1 1 1 1 1 1 1 1 Z= 1 1
3
1.
2.
3.
4.
5.
6.
7.
8.
n bit operations
n iterations
4
π 2 πππ’π‘ π 2 πππ’π‘
5
π¨ = π¦12
π 2 + π¦2
π§12
π 2 + π§2
z = π¦1π§1 2π + π¦1π§2 + π¦2π§1 2
π 2 + π¦2π§2
π π = 4π π 2 + π π π = Ξ π2
6
π¨ = π¦π§ z = π¦1π§1 2π + π¦1π§2 + π¦2π§1 2
π 2 + π¦2π§2
π¨ = π¦1π§1 2π + π¦1 β π¦2 π§2 β π§1 + π¦1π§1 + π¦2π§2 2
π 2 + π¦2π§2
π π = 3π π 2 + π π π = Ξ πlg 3
7
2 2 + π¦2π§2
8
Section 4.2
9
π=π πππ. πππ, assuming A, B, and C are
10
n n n
11
12
13
14
15
1 = π΅11. π1
4 = π΅22. π4
4 β π2 + π6
1 + π2
4
1 β π3 β π7
16
17
18
Section 9.3
19
Pick the first element (pivot) Place it in its position in the array Recursively process one subarray
20
p1
21
p1
p2
22
p1
p2 p3
23
p1
p2 p3 p4
24
p1
p2 p3 p4
How to choose a good pivot?
25
26
94 82 88 12 23 61 11 13 70 37 28 31 64 6 19 32 27 38 35 21 93 22 43 30 67 90 48 42 65 45 50 91 69 57 24
27
12 23 82 88 94 11 13 37 61 70 6 19 28 31 64 21 27 32 35 38 22 30 43 67 93 42 45 48 65 90 24 50 57 69 91
28
12 23 82 88 94 11 13 37 61 70 6 19 28 31 64 21 27 32 35 38 22 30 43 67 93 42 45 48 65 90 24 50 57 69 91 π
29
30
1.
SELECT(π΅, π, π)
2.
if (π β€ 5) then sort π΅ and return ππ’β element
3.
Partition π΅ into groups of 5
4.
π ο§ Find the median of each group
5.
πβ = SELECT(π,
π 5 , π 10)
6.
Partition π΅ around πβ, let it be at position π
7.
if (π = π) then return πβ
8.
if (π > π) then return SELECT(π΅[1, π β 1], π β 1, π)
9.
if (π < π) then return SELECT(π΅[π + 1, π], π β π, π β π)
31
πβ
32
π 5 group
π medians
πβ
33
π 5 group
π medians
πβ
34
π 5 group
π medians
πβ
35
π 5 groups each of size 5
10 groups
10 π, 7 10 π]
36
π 5 + π 7π 10 + ππ
37
38
39
40
41
π=π 9 10 π
π=π 9 10 π
π=β 9 10 π
1 1β 9
10
42
π+1 5
7 π+1 10
π+1 5
7 π+1 10
43
π π + 1 5 + π 7 π + 1 10 + π π + 1 β€ π π + 1
π 5 + 7π 10 + π β€ π π 10 β₯ π
44
45