SlideShare a Scribd company logo
4 -1
Chapter 4
The Divide-and-Conquer
Strategy
4 -2
A simple example
 finding the maximum of a set S of n numbers
4 -3
 Time complexity:
T(n): # of comparisons
 Calculation of T(n):
Assume n = 2k
,
T(n) = 2T(n/2)+1
= 2(2T(n/4)+1)+1
= 4T(n/4)+2+1
:
=2k-1
T(2)+2k-2
+…+4+2+1
=2k-1
+2k-2
+…+4+2+1
=2k
-1 = n-1
T(n)=



2T(n/2)+1
1
, n>2
, n≤2
Time complexity
4 -4
A general divide-and-conquer
algorithm
Step 1: If the problem size is small, solve this
problem directly; otherwise, split the
original problem into 2 sub-problems
with equal sizes.
Step 2: Recursively solve these 2 sub-problems
by applying this algorithm.
Step 3: Merge the solutions of the 2 sub-
problems into a solution of the original
problem.
4 -5
Time complexity of the
general algorithm
 Time complexity:
where S(n) : time for splitting
M(n) : time for merging
b : a constant
c : a constant
T(n)=



2T(n/2)+S(n)+M(n)
b
, n ≥c
, n < c
4 -6
Binary search
 e.g. 2 4 5 6 7 8 9
↑
↑
↑
search 7: needs 3 comparisons
 time: O(log n)
 The binary search can be used only if the
elements are sorted and stored in an array.
4 -7
Algorithm binary-search
Input: A sorted sequence of n elements stored in an
array.
Output: The position of x (to be searched).
Step 1: If only one element remains in the array, solve it
directly.
Step 2: Compare x with the middle element of the array.
Step 2.1: If x = middle element, then output it and stop.
Step 2.2: If x < middle element, then recursively solve
the problem with x and the left half array.
Step 2.3: If x > middle element, then recursively solve
the problem with x and the right half array.
4 -8
Algorithm BinSearch(a, low, high, x)
// a[]: sorted sequence in nondecreasing order
// low, high: the bounds for searching in a []
// x: the element to be searched
// If x = a[j], for some j, then return j else return –1
if (low > high) then return –1 // invalid range
if (low = high) then // if small P
if (x == a[i]) then return i
else return -1
else // divide P into two smaller subproblems
mid = (low + high) / 2
if (x == a[mid]) then return mid
else if (x < a[mid]) then
return BinSearch(a, low, mid-1, x)
else return BinSearch(a, mid+1, high, x)
4 -9
Quicksort
 Sort into nondecreasing order
[26 5 37 1 61 11 59 15 48 19]
[26 5 19 1 61 11 59 15 48 37]
[26 5 19 1 15 11 59 61 48 37]
[11 5 19 1 15] 26 [59 61 48 37]
[11 5 1 19 15] 26 [59 61 48 37]
[ 1 5] 11 [19 15] 26 [59 61 48 37]
1 5 11 15 19 26 [59 61 48 37]
1 5 11 15 19 26 [59 37 48 61]
1 5 11 15 19 26 [48 37] 59 [61]
1 5 11 15 19 26 37 48 59 61
4 -10
Algorithm Quicksort
Input: A set S of n elements.
Output: The sorted sequence of the inputs in
nondecreasing order.
Step 1: If |S|≤2, solve it directly.
Step 2: (Partition step) Use a pivot to scan all
elements in S. Put the smaller elements in S1,
and the larger elements in S2.
Step 3: Recursively solve S1 and S2.
4 -11
Time complexity of Quicksort
 time in the worst case:
(n-1)+(n-2)+...+1 = n(n-1)/2= O(n2
)
 time in the best case:
In each partition, the problem is always
divided into two subproblems with almost
equal size.
... ...
..
.
log2n
n
×2 = n
n
2
×4 = n
n
4
4 -12
Time complexity of the best case
 T(n): time required for sorting n elements
 T(n)≦ cn+2T(n/2), for some constant c.
≦ cn+2(c . n/2 + 2T(n/4))
≦ 2cn + 4T(n/4)
…
≦ cnlog2n + nT(1) = O(nlogn)
4 -13
 Merge two sorted sequences into a single
one.
 time complexity: O(m+n),
m and n: lengths of the two sorted lists
Two-way merge
[25 37 48 57][12 33 86 92]
[12 25 33 37 48 57 86 92]
merge
4 -14
 Sort into nondecreasing order
 log2n passes are required.
 time complexity: O(nlogn)
Merge sort
[25][57][48][37][12][92][86][33]
[25 57][37 48][12 92][33 86]
[25 37 48 57][12 33 86 92]
[12 25 33 37 48 57 86 92]
pass 1
pass 2
pass 3
4 -15
Algorithm Merge-Sort
Input: A set S of n elements.
Output: The sorted sequence of the inputs in
nondecreasing order.
Step 1: If |S|≤2, solve it directly.
Step 2: Recursively apply this algorithm to solve
the left half part and right half part of S, and
the results are stored in S1 and S2,
respectively.
Step 3: Perform the two-way merge scheme on
S1 and S2.
4 -16
2-D maxima finding problem
 Def : A point (x1, y1) dominates (x2, y2) if x1 > x2
and y1 > y2. A point is called a maximum if no
other point dominates it
 Straightforward method : Compare every pair
of points.
Time complexity:
C(n,2)=O(n2
)
4 -17
Divide-and-conquer for
maxima finding
The maximal points of SL
and SR
4 -18
The algorithm:
 Input: A set S of n planar points.
 Output: The maximal points of S.
Step 1: If S contains only one point, return it as
the maximum. Otherwise, find a line L
perpendicular to the X-axis which separates S
into SL
and SR
, with equal sizes.
Step 2: Recursively find the maximal points of
SL
and SR
.
Step 3: Find the largest y-value of SR
, denoted
as yR. Discard each of the maximal points of
SL
if its y-value is less than yR.
4 -19
 Time complexity: T(n)
Step 1: O(n)
Step 2: 2T(n/2)
Step 3: O(n)
Assume n = 2k
T(n) = O(n log n)
T(n)=



2T(n/2)+O(n)+O(n)
1
, n > 1
, n = 1
4 -20
The closest pair problem
 Given a set S of n points, find a pair of points
which are closest together.
 1-D version :
Solved by sorting
Time complexity :
O(n log n)
 2-D version
4 -21
 at most 6 points in area A:
4 -22
The algorithm:
 Input: A set S of n planar points.
 Output: The distance between two closest
points.
Step 1: Sort points in S according to their y-
values.
Step 2: If S contains only one point, return
infinity as its distance.
Step 3: Find a median line L perpendicular to
the X-axis to divide S into SL
and SR
, with
equal sizes.
Step 4: Recursively apply Steps 2 and 3 to
solve the closest pair problems of SL
and SR
.
Let dL
(dR
) denote the distance between the
closest pair in S (S ). Let d = min(d , d ).
4 -23
Step 5: For a point P in the half-slab bounded
by L-d and L, let its y-value be denoted as yP
.
For each such P, find all points in the half-
slab bounded by L and L+d whose y-value fall
within yP
+d and yP
-d. If the distance d′
between P and a point in the other half-slab is
less than d, let d=d′. The final value of d is
the answer.
 Time complexity: O(n log n)
Step 1: O(n log n)
Steps 2~5:
⇒T(n) = O(n log n)
T(n)=



2T(n/2)+O(n)+O(n)
1
, n > 1
, n = 1
4 -24
The convex hull problem
 The convex hull of a set of planar points is
the smallest convex polygon containing all of
the points.
concave polygon: convex polygon:
4 -25
 The divide-and-conquer strategy to
solve the problem:
4 -26
 The merging procedure:
1. Select an interior point p.
2. There are 3 sequences of points which
have increasing polar angles with respect to
p.
(1) g, h, i, j, k
(2) a, b, c, d
(3) f, e
3. Merge these 3 sequences into 1 sequence:
g, h, a, b, f, c, e, d, i, j, k.
4. Apply Graham scan to examine the points
one by one and eliminate the points which
cause reflexive angles.
(See the example on the next page.)
4 -27
 e.g. points b and f need to be deleted.
Final
result:
4 -28
Divide-and-conquer for convex hull
 Input : A set S of planar points
 Output : A convex hull for S
Step 1: If S contains no more than five points,
use exhaustive searching to find the convex
hull and return.
Step 2: Find a median line perpendicular to the
X-axis which divides S into SL
and SR
, with
equal sizes.
Step 3: Recursively construct convex hulls for SL
and SR
, denoted as Hull(SL
) and Hull(SR
),
respectively.
4 -29
 Step 4: Apply the merging procedure to
merge Hull(SL
) and Hull(SR
) together to form a
convex hull.
 Time complexity:
T(n) = 2T(n/2) + O(n)
= O(n log n)
4 -30
Matrix multiplication
 Let A, B and C be n × n matrices
C = AB
C(i, j) = A(i, k)B(k, j)
 The straightforward method to perform a
matrix multiplication requires O(n3
) time.
1≤ ≤
∑
k n
4 -31
Divide-and-conquer approach
 C = AB
C11
= A11
B11
+ A12
B21
C12
= A11
B12
+ A12
B22
C21
= A21
B11
+ A22
B21
C22
= A21
B12
+ A22
B22
 Time complexity:
(# of additions : n2
)
3
C11 C12 = A11 A12 B11 B12
C21 C22 = A21 A22 B21 B22
T(n) =



b
8T(n/2)+cn2
, n ≤2
, n > 2
4 -32
 P = (A11
+ A22
)(B11
+ B22
)
Q = (A21
+ A22
)B11
R = A11
(B12
- B22
)
S = A22
(B21
- B11
)
T = (A11
+ A12
)B22
U = (A21
- A11
)(B11
+ B12
)
V = (A12
- A22
)(B21
+ B22
).
 C11
= P + S - T + V
C12
= R + T
C21
= Q + S
Strassen’s matrix multiplicaiton
C11
= A11
B11
+ A12
B21
C12
= A11
B12
+ A12
B22
C21
= A21
B11
+ A22
B21
C22
= A21
B12
+ A22
B22
4 -33
Time complexity
 7 multiplications and 18 additions or subtractions
 Time complexity:
T(n) =



b
7T(n/2)+an2
, n ≤2
, n > 2
)(O)(O
)(
constantais,7)(
)1(7))()(1(
)4/(7
)4/(7)((7
)2/(7)(
81.27log
7log4log7log4log7loglog
4
72
loglog
4
72
1
4
72
4
7
4
72
22
4
72
2
2
2
2
2
222222
22
nn
ncnncn
ccn
Tan
nTanan
nTaan
nTannT
n
nn
kk
n
≅=
+=+=
+≤
+++++=
=
++=
++=
+=
+−
−



4 -34
Fast Fourier transform (FFT)
 Fourier transform
 Inverse Fourier transform
 Discrete Fourier transform(DFT)
Given a0
, a1
, …, an-1
, compute
1where,2
−== ∫
∞
∞−
idta(t)eb(f) πfti
∫
∞
∞−
−
= dtb(f)ea(t) πfti2
2
1
π
ni
n
k
kj
k
n
k
njki
kj
ea
njeab
/2
1
0
1
0
/2
where,
10,
π
π
ωω ==
−≤≤=
∑
∑
−
=
−
=
4 -35
DFT and waveform(1)
 Any periodic waveform can be decomposed
into the linear sum of sinusoid functions (sine
or cosine).
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-4
-3
-2
-1
0
1
2
3
4
7 15 48 56
f(頻率)
))56(2cos())48(2cos(3
))15(2cos(3))7(2cos()(
tt
tttf
ππ
ππ
+
++=
4 -36
The waveform of a music
signal of 1 second
The frequency spectrum of
the music signal with DFT
DFT and waveform (2)
4 -37
 Inverse DFT:

 DFT can be computed in O(n2
) time by a
straightforward method.
 DFT can be solved by the divide-and-conquer
strategy (FFT) in O(nlogn) time.
10,
1 1
0
−≤≤= ∑
−
=
−
nkb
n
a
n
j
jk
jk ω
1sincos)(
12sin2cos)(
sincos
2//22/
2/2
−=+===
=+===
+=
ππω
ππω
θθ
ππ
ππ
θ
iee
iee
ie
innin
innin
i
FFT algorithm
4 -38
FFT algorithm when n=4
 n=4, w=ei2π/4
, w4
=1, w2
=-1
b0
=a0
+a1
+a2
+a3
b1
=a0
+a1
w+a2
w2
+a3
w3
b2
=a0
+a1
w2
+a2
w4
+a3
w6
b3
=a0
+a1
w3
+a2
w6
+a3
w9
 another form:
b0
=(a0
+a2
)+(a1
+a3
)
b2
=(a0
+a2
w4
)+(a1
w2
+a3
w6
) =(a0
+a2
)-(a1
+a3
)
 When we calculate b0
, we shall calculate (a0
+a2
) and
(a1
+a3
). Later, b2
van be easily calculated.
 Similarly,
b1
=(a0
+ a2
w2
)+(a1
w+a3
w3
) =(a0
-a2
)+w(a1
-a3
)
b =(a +a w6
)+(a w3
+a w9
) =(a -a )-w(a -a ).
4 -39
 n=8, w=ei2π/8
, w8
=1, w4
=-1
b0
=a0
+a1
+a2
+a3
+a4
+a5
+a6
+a7
b1
=a0
+a1
w+a2
w2
+a3
w3
+a4
w4
+a5
w5
+a6
w6
+a7
w7
b2
=a0
+a1
w2
+a2
w4
+a3
w6
+a4
w8
+a5
w10
+a6
w12
+a7
w14
b3
=a0
+a1
w3
+a2
w6
+a3
w9
+a4
w12
+a5
w15
+a6
w18
+a7
w21
b4
=a0
+a1
w4
+a2
w8
+a3
w12
+a4
w16
+a5
w20
+a6
w24
+a7
w28
b5
=a0
+a1
w5
+a2
w10
+a3
w15
+a4
w20
+a5
w25
+a6
w30
+a7
w35
b6
=a0
+a1
w6
+a2
w12
+a3
w18
+a4
w24
+a5
w30
+a6
w36
+a7
w42
b7
=a0
+a1
w7
+a2
w14
+a3
w21
+a4
w28
+a5
w35
+a6
w42
+a7
w49
FFT algorithm when n=8
4 -40
 After reordering, we have
b0
=(a0
+a2
+a4
+a6
)+(a1
+a3
+a5
+a7
)
b1
=(a0
+a2
w2
+a4
w4
+a6
w6
)+ w(a1
+a3
w2
+a5
w4
+a7
w6
)
b2
=(a0
+a2
w4
+a4
w8
+a6
w12
)+ w2
(a1
+a3
w4
+a5
w8
+a7
w12
)
b3
=(a0
+a2
w6
+a4
w12
+a6
w18
)+ w3
(a1
+a3
w6
+a5
w12
+a7
w18
)
b4
=(a0
+a2
+a4
+a6
)-(a1
+a3
+a5
+a7
)
b5
=(a0
+a2
w2
+a4
w4
+a6
w6
)-w(a1
+a3
w2
+a5
w4
+a7
w6
)
b6
=(a0
+a2
w4
+a4
w8
+a6
w12
)-w2
(a1
+a3
w4
+a5
w8
+a7
w12
)
b7
=(a0
+a2
w6
+a4
w12
+a6
w18
)-w3
(a1
+a3
w6
+a5
w12
+a7
w18
)
 Rewrite as
b0
=c0
+d0
b4
=c0
-d0
=c0
+w4
d0
b1
=c1
+wd1
b5
=c1
-wd1
=c1
+w5
d1
b2
=c2
+w2
d2
b6
=c2
-w2
d2
=c2
+w6
d2
4 -41
 c0
=a0
+a2
+a4
+a6
c1
=a0
+a2
w2
+a4
w4
+a6
w6
c2
=a0
+a2
w4
+a4
w8
+a6
w12
c3
=a0
+a2
w6
+a4
w12
+a6
w18
 Let x=w2
=ei2π/4
c0
=a0
+a2
+a4
+a6
c1
=a0
+a2
x+a4
x2
+a6
x3
c2
=a0
+a2
x2
+a4
x4
+a6
x6
c3
=a0
+a2
x3
+a4
x6
+a6
x9
 Thus, {c0
,c1
,c2
,c3
} is FFT of {a0
,a2
,a4
,a6
}.
Similarly, {d0
,d1
,d2
,d3
} is FFT of {a1
,a3
,a5
,a7
}.
4 -42
General FFT
 In general, let w=ei2π/n
(assume n is even.)
wn
=1, wn/2
=-1
bj
=a0
+a1
wj
+a2
w2j
+…+an-1
w(n-1)j
,
={a0
+a2
w2j
+a4
w4j
+…+an-2
w(n-2)j
}+
wj
{a1
+a3
w2j
+a5
w4j
+…+an-1
w(n-2)j
}
=cj
+wj
dj
bj+n/2
=a0
+a1
wj+n/2
+a2
w2j+n
+a3
w3j+3n/2
+…
+an-1
w(n-1)j+n(n-1)/2
=a0
-a1
wj
+a2
w2j
-a3
w3j
+…+an-2
w(n-2)j
-an-1
w(n-1)j
=cj
-wj
dj
=cj
+wj+n/2
dj
4 -43
Divide-and-conquer (FFT)
 Input: a0
, a1
, …, an-1
, n = 2k
 Output: bj
, j=0, 1, 2, …, n-1
where
Step 1: If n=2, compute
b0
= a0
+ a1
,
b1
= a0
- a1
, and return.
Step 2: Recursively find the Fourier transform of
{a0
, a2
, a4
,…, an-2
} and {a1
, a3
, a5
,…,an-1
}, whose
results are denoted as {c0
, c1
, c2
,…, cn/2-1
} and
{d0
, d1
, d2
,…, dn/2-1
}.
∑−≤≤
==
10
2
where
nk
π/nikj
kj ew,wab
4 -44
Step 3: Compute bj
:
bj
= cj
+ wj
dj
for 0 ≤ j ≤ n/2 - 1
bj+n/2
= cj
- wj
dj
for 0 ≤ j ≤ n/2 - 1.
 Time complexity:
T(n) = 2T(n/2) + O(n)
= O(n log n)

More Related Content

What's hot

Algorithm Design and Complexity - Course 3
Algorithm Design and Complexity - Course 3Algorithm Design and Complexity - Course 3
Algorithm Design and Complexity - Course 3Traian Rebedea
 
Lecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrencesLecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrences
jayavignesh86
 
Recurrences
RecurrencesRecurrences
Analysis and design of algorithms part 4
Analysis and design of algorithms part 4Analysis and design of algorithms part 4
Analysis and design of algorithms part 4
Deepak John
 
Banco de preguntas para el ap
Banco de preguntas para el apBanco de preguntas para el ap
Banco de preguntas para el ap
MARCELOCHAVEZ23
 
Unit 5
Unit 5Unit 5
Unit 5
guna287176
 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
Krish_ver2
 
03 dc
03 dc03 dc
03 dc
Hira Gul
 
Unit 2
Unit 2Unit 2
Unit 2
guna287176
 
Matrix Multiplication(An example of concurrent programming)
Matrix Multiplication(An example of concurrent programming)Matrix Multiplication(An example of concurrent programming)
Matrix Multiplication(An example of concurrent programming)
Pramit Kumar
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree method
Rajendran
 
01 knapsack using backtracking
01 knapsack using backtracking01 knapsack using backtracking
01 knapsack using backtrackingmandlapure
 
Maths Revision Notes - IGCSE
Maths Revision Notes - IGCSEMaths Revision Notes - IGCSE
Maths Revision Notes - IGCSE
Rahul Jose
 
Master theorem
Master theoremMaster theorem
Master theorem
fika sweety
 
Introduction to Logarithm
Introduction to LogarithmIntroduction to Logarithm
Introduction to Logarithm
FellowBuddy.com
 
Lecture#9
Lecture#9Lecture#9
Lecture#9
Ali Shah
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
Dr Shashikant Athawale
 
Master method
Master method Master method
Master method
Rajendran
 

What's hot (20)

Algorithm Design and Complexity - Course 3
Algorithm Design and Complexity - Course 3Algorithm Design and Complexity - Course 3
Algorithm Design and Complexity - Course 3
 
Lecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrencesLecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrences
 
Recurrences
RecurrencesRecurrences
Recurrences
 
Analysis and design of algorithms part 4
Analysis and design of algorithms part 4Analysis and design of algorithms part 4
Analysis and design of algorithms part 4
 
Banco de preguntas para el ap
Banco de preguntas para el apBanco de preguntas para el ap
Banco de preguntas para el ap
 
Unit 5
Unit 5Unit 5
Unit 5
 
Lemh104
Lemh104Lemh104
Lemh104
 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
 
03 dc
03 dc03 dc
03 dc
 
Unit 2
Unit 2Unit 2
Unit 2
 
Matrix Multiplication(An example of concurrent programming)
Matrix Multiplication(An example of concurrent programming)Matrix Multiplication(An example of concurrent programming)
Matrix Multiplication(An example of concurrent programming)
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree method
 
01 knapsack using backtracking
01 knapsack using backtracking01 knapsack using backtracking
01 knapsack using backtracking
 
Maths Revision Notes - IGCSE
Maths Revision Notes - IGCSEMaths Revision Notes - IGCSE
Maths Revision Notes - IGCSE
 
Master theorem
Master theoremMaster theorem
Master theorem
 
Introduction to Logarithm
Introduction to LogarithmIntroduction to Logarithm
Introduction to Logarithm
 
Lecture#9
Lecture#9Lecture#9
Lecture#9
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
 
Master method
Master method Master method
Master method
 
algorithm Unit 4
algorithm Unit 4 algorithm Unit 4
algorithm Unit 4
 

Viewers also liked

1.9 b trees eg 03
1.9 b trees eg 031.9 b trees eg 03
1.9 b trees eg 03
Krish_ver2
 
2.4 mst kruskal’s
2.4 mst  kruskal’s 2.4 mst  kruskal’s
2.4 mst kruskal’s
Krish_ver2
 
평범한 이야기[Intro: 2015 의기제]
평범한 이야기[Intro: 2015 의기제]평범한 이야기[Intro: 2015 의기제]
평범한 이야기[Intro: 2015 의기제]
대호 이
 
trabajo de cultural
trabajo de culturaltrabajo de cultural
trabajo de cultural
argelures
 
5.3 dyn algo-i
5.3 dyn algo-i5.3 dyn algo-i
5.3 dyn algo-i
Krish_ver2
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructures
Krish_ver2
 
Online Trading Concepts
Online Trading ConceptsOnline Trading Concepts
Online Trading Concepts
Fxmoneyworld LTD
 
5.4 randamized algorithm
5.4 randamized algorithm5.4 randamized algorithm
5.4 randamized algorithm
Krish_ver2
 
CV Belinda Wahl 2015
CV Belinda Wahl 2015CV Belinda Wahl 2015
CV Belinda Wahl 2015Belinda Wahl
 
Salario minimo basico
Salario minimo basicoSalario minimo basico
Salario minimo basico
veritotcarrillo
 
nhận thiết kế clip quảng cáo giá tốt
nhận thiết kế clip quảng cáo giá tốtnhận thiết kế clip quảng cáo giá tốt
nhận thiết kế clip quảng cáo giá tốtraul110
 
4.4 hashing02
4.4 hashing024.4 hashing02
4.4 hashing02
Krish_ver2
 
160607 14 sw교육_강의안
160607 14 sw교육_강의안160607 14 sw교육_강의안
160607 14 sw교육_강의안
Choi Man Dream
 
2.4 mst prim &kruskal demo
2.4 mst  prim &kruskal demo2.4 mst  prim &kruskal demo
2.4 mst prim &kruskal demo
Krish_ver2
 
4.2 bst 03
4.2 bst 034.2 bst 03
4.2 bst 03
Krish_ver2
 
4.2 bst 02
4.2 bst 024.2 bst 02
4.2 bst 02
Krish_ver2
 
1.9 b trees 02
1.9 b trees 021.9 b trees 02
1.9 b trees 02
Krish_ver2
 

Viewers also liked (20)

1.9 b trees eg 03
1.9 b trees eg 031.9 b trees eg 03
1.9 b trees eg 03
 
РЕКЛАМНЫЕ МОДЕЛИ
РЕКЛАМНЫЕ МОДЕЛИРЕКЛАМНЫЕ МОДЕЛИ
РЕКЛАМНЫЕ МОДЕЛИ
 
2.4 mst kruskal’s
2.4 mst  kruskal’s 2.4 mst  kruskal’s
2.4 mst kruskal’s
 
평범한 이야기[Intro: 2015 의기제]
평범한 이야기[Intro: 2015 의기제]평범한 이야기[Intro: 2015 의기제]
평범한 이야기[Intro: 2015 의기제]
 
trabajo de cultural
trabajo de culturaltrabajo de cultural
trabajo de cultural
 
5.3 dyn algo-i
5.3 dyn algo-i5.3 dyn algo-i
5.3 dyn algo-i
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructures
 
Online Trading Concepts
Online Trading ConceptsOnline Trading Concepts
Online Trading Concepts
 
5.4 randamized algorithm
5.4 randamized algorithm5.4 randamized algorithm
5.4 randamized algorithm
 
4.1 webminig
4.1 webminig 4.1 webminig
4.1 webminig
 
CV Belinda Wahl 2015
CV Belinda Wahl 2015CV Belinda Wahl 2015
CV Belinda Wahl 2015
 
Salario minimo basico
Salario minimo basicoSalario minimo basico
Salario minimo basico
 
nhận thiết kế clip quảng cáo giá tốt
nhận thiết kế clip quảng cáo giá tốtnhận thiết kế clip quảng cáo giá tốt
nhận thiết kế clip quảng cáo giá tốt
 
4.4 hashing02
4.4 hashing024.4 hashing02
4.4 hashing02
 
160607 14 sw교육_강의안
160607 14 sw교육_강의안160607 14 sw교육_강의안
160607 14 sw교육_강의안
 
2.4 mst prim &kruskal demo
2.4 mst  prim &kruskal demo2.4 mst  prim &kruskal demo
2.4 mst prim &kruskal demo
 
4.2 bst 03
4.2 bst 034.2 bst 03
4.2 bst 03
 
RESUME-ARITRA BHOWMIK
RESUME-ARITRA BHOWMIKRESUME-ARITRA BHOWMIK
RESUME-ARITRA BHOWMIK
 
4.2 bst 02
4.2 bst 024.2 bst 02
4.2 bst 02
 
1.9 b trees 02
1.9 b trees 021.9 b trees 02
1.9 b trees 02
 

Similar to 5.2 divede and conquer 03

T2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptxT2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptx
GadaFarhan
 
Copy of y16 02-2119divide-and-conquer
Copy of y16 02-2119divide-and-conquerCopy of y16 02-2119divide-and-conquer
Copy of y16 02-2119divide-and-conquer
Joepang2015
 
Recurrence relation solutions
Recurrence relation solutionsRecurrence relation solutions
Recurrence relation solutions
subhashchandra197
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquer
Krish_ver2
 
Merge Sort
Merge SortMerge Sort
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
Vikas Sharma
 
module2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdfmodule2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdf
Shiwani Gupta
 
2.pptx
2.pptx2.pptx
2.pptx
MohAlyasin1
 
Randomized algorithms ver 1.0
Randomized algorithms ver 1.0Randomized algorithms ver 1.0
Randomized algorithms ver 1.0
Dr. C.V. Suresh Babu
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower bounds
Rajendran
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probability
bryan111472
 
Recurrences
RecurrencesRecurrences
Recurrences
DEVTYPE
 
Sample question paper 2 with solution
Sample question paper 2 with solutionSample question paper 2 with solution
Sample question paper 2 with solution
Pratima Nayak ,Kendriya Vidyalaya Sangathan
 
Merge sort and quick sort
Merge sort and quick sortMerge sort and quick sort
Merge sort and quick sort
Shakila Mahjabin
 
pradeepbishtLecture13 div conq
pradeepbishtLecture13 div conqpradeepbishtLecture13 div conq
pradeepbishtLecture13 div conq
Pradeep Bisht
 
Solving recurrences
Solving recurrencesSolving recurrences
Solving recurrences
Megha V
 
lecture 15
lecture 15lecture 15
lecture 15sajinsc
 
Dynamic Programming for 4th sem cse students
Dynamic Programming for 4th sem cse studentsDynamic Programming for 4th sem cse students
Dynamic Programming for 4th sem cse students
DeepakGowda357858
 

Similar to 5.2 divede and conquer 03 (20)

T2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptxT2311 - Ch 4_Part1.pptx
T2311 - Ch 4_Part1.pptx
 
Recurrences
RecurrencesRecurrences
Recurrences
 
Copy of y16 02-2119divide-and-conquer
Copy of y16 02-2119divide-and-conquerCopy of y16 02-2119divide-and-conquer
Copy of y16 02-2119divide-and-conquer
 
Recurrence relation solutions
Recurrence relation solutionsRecurrence relation solutions
Recurrence relation solutions
 
5.2 divide and conquer
5.2 divide and conquer5.2 divide and conquer
5.2 divide and conquer
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Divide and conquer
Divide and conquerDivide and conquer
Divide and conquer
 
module2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdfmodule2_dIVIDEncONQUER_2022.pdf
module2_dIVIDEncONQUER_2022.pdf
 
2.pptx
2.pptx2.pptx
2.pptx
 
Randomized algorithms ver 1.0
Randomized algorithms ver 1.0Randomized algorithms ver 1.0
Randomized algorithms ver 1.0
 
Divide and conquer surfing lower bounds
Divide and conquer  surfing lower boundsDivide and conquer  surfing lower bounds
Divide and conquer surfing lower bounds
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probability
 
Recurrences
RecurrencesRecurrences
Recurrences
 
Sample question paper 2 with solution
Sample question paper 2 with solutionSample question paper 2 with solution
Sample question paper 2 with solution
 
Merge sort and quick sort
Merge sort and quick sortMerge sort and quick sort
Merge sort and quick sort
 
pradeepbishtLecture13 div conq
pradeepbishtLecture13 div conqpradeepbishtLecture13 div conq
pradeepbishtLecture13 div conq
 
Solving recurrences
Solving recurrencesSolving recurrences
Solving recurrences
 
lecture 15
lecture 15lecture 15
lecture 15
 
add math form 4/5
add math form 4/5add math form 4/5
add math form 4/5
 
Dynamic Programming for 4th sem cse students
Dynamic Programming for 4th sem cse studentsDynamic Programming for 4th sem cse students
Dynamic Programming for 4th sem cse students
 

More from Krish_ver2

5.5 back tracking
5.5 back tracking5.5 back tracking
5.5 back tracking
Krish_ver2
 
5.5 back track
5.5 back track5.5 back track
5.5 back track
Krish_ver2
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructures
Krish_ver2
 
5.3 dynamic programming 03
5.3 dynamic programming 035.3 dynamic programming 03
5.3 dynamic programming 03
Krish_ver2
 
5.3 dynamic programming
5.3 dynamic programming5.3 dynamic programming
5.3 dynamic programming
Krish_ver2
 
5.2 divede and conquer 03
5.2 divede and conquer 035.2 divede and conquer 03
5.2 divede and conquer 03
Krish_ver2
 
5.1 greedyyy 02
5.1 greedyyy 025.1 greedyyy 02
5.1 greedyyy 02
Krish_ver2
 
5.1 greedy 03
5.1 greedy 035.1 greedy 03
5.1 greedy 03
Krish_ver2
 
4.4 hashing
4.4 hashing4.4 hashing
4.4 hashing
Krish_ver2
 
4.4 hashing ext
4.4 hashing  ext4.4 hashing  ext
4.4 hashing ext
Krish_ver2
 
4.4 external hashing
4.4 external hashing4.4 external hashing
4.4 external hashing
Krish_ver2
 
4.2 bst
4.2 bst4.2 bst
4.2 bst
Krish_ver2
 
4.1 sequentioal search
4.1 sequentioal search4.1 sequentioal search
4.1 sequentioal search
Krish_ver2
 
3.9 external sorting
3.9 external sorting3.9 external sorting
3.9 external sorting
Krish_ver2
 
3.8 quicksort
3.8 quicksort3.8 quicksort
3.8 quicksort
Krish_ver2
 
3.8 quick sort
3.8 quick sort3.8 quick sort
3.8 quick sort
Krish_ver2
 
3.8 quicksort 04
3.8 quicksort 043.8 quicksort 04
3.8 quicksort 04
Krish_ver2
 
3.7 heap sort
3.7 heap sort3.7 heap sort
3.7 heap sort
Krish_ver2
 
3.6 radix sort
3.6 radix sort3.6 radix sort
3.6 radix sort
Krish_ver2
 
3.5 merge sort
3.5 merge sort3.5 merge sort
3.5 merge sort
Krish_ver2
 

More from Krish_ver2 (20)

5.5 back tracking
5.5 back tracking5.5 back tracking
5.5 back tracking
 
5.5 back track
5.5 back track5.5 back track
5.5 back track
 
5.4 randomized datastructures
5.4 randomized datastructures5.4 randomized datastructures
5.4 randomized datastructures
 
5.3 dynamic programming 03
5.3 dynamic programming 035.3 dynamic programming 03
5.3 dynamic programming 03
 
5.3 dynamic programming
5.3 dynamic programming5.3 dynamic programming
5.3 dynamic programming
 
5.2 divede and conquer 03
5.2 divede and conquer 035.2 divede and conquer 03
5.2 divede and conquer 03
 
5.1 greedyyy 02
5.1 greedyyy 025.1 greedyyy 02
5.1 greedyyy 02
 
5.1 greedy 03
5.1 greedy 035.1 greedy 03
5.1 greedy 03
 
4.4 hashing
4.4 hashing4.4 hashing
4.4 hashing
 
4.4 hashing ext
4.4 hashing  ext4.4 hashing  ext
4.4 hashing ext
 
4.4 external hashing
4.4 external hashing4.4 external hashing
4.4 external hashing
 
4.2 bst
4.2 bst4.2 bst
4.2 bst
 
4.1 sequentioal search
4.1 sequentioal search4.1 sequentioal search
4.1 sequentioal search
 
3.9 external sorting
3.9 external sorting3.9 external sorting
3.9 external sorting
 
3.8 quicksort
3.8 quicksort3.8 quicksort
3.8 quicksort
 
3.8 quick sort
3.8 quick sort3.8 quick sort
3.8 quick sort
 
3.8 quicksort 04
3.8 quicksort 043.8 quicksort 04
3.8 quicksort 04
 
3.7 heap sort
3.7 heap sort3.7 heap sort
3.7 heap sort
 
3.6 radix sort
3.6 radix sort3.6 radix sort
3.6 radix sort
 
3.5 merge sort
3.5 merge sort3.5 merge sort
3.5 merge sort
 

Recently uploaded

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
Nguyen Thanh Tu Collection
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 

Recently uploaded (20)

1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 
Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......Ethnobotany and Ethnopharmacology ......
Ethnobotany and Ethnopharmacology ......
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 

5.2 divede and conquer 03

  • 1. 4 -1 Chapter 4 The Divide-and-Conquer Strategy
  • 2. 4 -2 A simple example  finding the maximum of a set S of n numbers
  • 3. 4 -3  Time complexity: T(n): # of comparisons  Calculation of T(n): Assume n = 2k , T(n) = 2T(n/2)+1 = 2(2T(n/4)+1)+1 = 4T(n/4)+2+1 : =2k-1 T(2)+2k-2 +…+4+2+1 =2k-1 +2k-2 +…+4+2+1 =2k -1 = n-1 T(n)=    2T(n/2)+1 1 , n>2 , n≤2 Time complexity
  • 4. 4 -4 A general divide-and-conquer algorithm Step 1: If the problem size is small, solve this problem directly; otherwise, split the original problem into 2 sub-problems with equal sizes. Step 2: Recursively solve these 2 sub-problems by applying this algorithm. Step 3: Merge the solutions of the 2 sub- problems into a solution of the original problem.
  • 5. 4 -5 Time complexity of the general algorithm  Time complexity: where S(n) : time for splitting M(n) : time for merging b : a constant c : a constant T(n)=    2T(n/2)+S(n)+M(n) b , n ≥c , n < c
  • 6. 4 -6 Binary search  e.g. 2 4 5 6 7 8 9 ↑ ↑ ↑ search 7: needs 3 comparisons  time: O(log n)  The binary search can be used only if the elements are sorted and stored in an array.
  • 7. 4 -7 Algorithm binary-search Input: A sorted sequence of n elements stored in an array. Output: The position of x (to be searched). Step 1: If only one element remains in the array, solve it directly. Step 2: Compare x with the middle element of the array. Step 2.1: If x = middle element, then output it and stop. Step 2.2: If x < middle element, then recursively solve the problem with x and the left half array. Step 2.3: If x > middle element, then recursively solve the problem with x and the right half array.
  • 8. 4 -8 Algorithm BinSearch(a, low, high, x) // a[]: sorted sequence in nondecreasing order // low, high: the bounds for searching in a [] // x: the element to be searched // If x = a[j], for some j, then return j else return –1 if (low > high) then return –1 // invalid range if (low = high) then // if small P if (x == a[i]) then return i else return -1 else // divide P into two smaller subproblems mid = (low + high) / 2 if (x == a[mid]) then return mid else if (x < a[mid]) then return BinSearch(a, low, mid-1, x) else return BinSearch(a, mid+1, high, x)
  • 9. 4 -9 Quicksort  Sort into nondecreasing order [26 5 37 1 61 11 59 15 48 19] [26 5 19 1 61 11 59 15 48 37] [26 5 19 1 15 11 59 61 48 37] [11 5 19 1 15] 26 [59 61 48 37] [11 5 1 19 15] 26 [59 61 48 37] [ 1 5] 11 [19 15] 26 [59 61 48 37] 1 5 11 15 19 26 [59 61 48 37] 1 5 11 15 19 26 [59 37 48 61] 1 5 11 15 19 26 [48 37] 59 [61] 1 5 11 15 19 26 37 48 59 61
  • 10. 4 -10 Algorithm Quicksort Input: A set S of n elements. Output: The sorted sequence of the inputs in nondecreasing order. Step 1: If |S|≤2, solve it directly. Step 2: (Partition step) Use a pivot to scan all elements in S. Put the smaller elements in S1, and the larger elements in S2. Step 3: Recursively solve S1 and S2.
  • 11. 4 -11 Time complexity of Quicksort  time in the worst case: (n-1)+(n-2)+...+1 = n(n-1)/2= O(n2 )  time in the best case: In each partition, the problem is always divided into two subproblems with almost equal size. ... ... .. . log2n n ×2 = n n 2 ×4 = n n 4
  • 12. 4 -12 Time complexity of the best case  T(n): time required for sorting n elements  T(n)≦ cn+2T(n/2), for some constant c. ≦ cn+2(c . n/2 + 2T(n/4)) ≦ 2cn + 4T(n/4) … ≦ cnlog2n + nT(1) = O(nlogn)
  • 13. 4 -13  Merge two sorted sequences into a single one.  time complexity: O(m+n), m and n: lengths of the two sorted lists Two-way merge [25 37 48 57][12 33 86 92] [12 25 33 37 48 57 86 92] merge
  • 14. 4 -14  Sort into nondecreasing order  log2n passes are required.  time complexity: O(nlogn) Merge sort [25][57][48][37][12][92][86][33] [25 57][37 48][12 92][33 86] [25 37 48 57][12 33 86 92] [12 25 33 37 48 57 86 92] pass 1 pass 2 pass 3
  • 15. 4 -15 Algorithm Merge-Sort Input: A set S of n elements. Output: The sorted sequence of the inputs in nondecreasing order. Step 1: If |S|≤2, solve it directly. Step 2: Recursively apply this algorithm to solve the left half part and right half part of S, and the results are stored in S1 and S2, respectively. Step 3: Perform the two-way merge scheme on S1 and S2.
  • 16. 4 -16 2-D maxima finding problem  Def : A point (x1, y1) dominates (x2, y2) if x1 > x2 and y1 > y2. A point is called a maximum if no other point dominates it  Straightforward method : Compare every pair of points. Time complexity: C(n,2)=O(n2 )
  • 17. 4 -17 Divide-and-conquer for maxima finding The maximal points of SL and SR
  • 18. 4 -18 The algorithm:  Input: A set S of n planar points.  Output: The maximal points of S. Step 1: If S contains only one point, return it as the maximum. Otherwise, find a line L perpendicular to the X-axis which separates S into SL and SR , with equal sizes. Step 2: Recursively find the maximal points of SL and SR . Step 3: Find the largest y-value of SR , denoted as yR. Discard each of the maximal points of SL if its y-value is less than yR.
  • 19. 4 -19  Time complexity: T(n) Step 1: O(n) Step 2: 2T(n/2) Step 3: O(n) Assume n = 2k T(n) = O(n log n) T(n)=    2T(n/2)+O(n)+O(n) 1 , n > 1 , n = 1
  • 20. 4 -20 The closest pair problem  Given a set S of n points, find a pair of points which are closest together.  1-D version : Solved by sorting Time complexity : O(n log n)  2-D version
  • 21. 4 -21  at most 6 points in area A:
  • 22. 4 -22 The algorithm:  Input: A set S of n planar points.  Output: The distance between two closest points. Step 1: Sort points in S according to their y- values. Step 2: If S contains only one point, return infinity as its distance. Step 3: Find a median line L perpendicular to the X-axis to divide S into SL and SR , with equal sizes. Step 4: Recursively apply Steps 2 and 3 to solve the closest pair problems of SL and SR . Let dL (dR ) denote the distance between the closest pair in S (S ). Let d = min(d , d ).
  • 23. 4 -23 Step 5: For a point P in the half-slab bounded by L-d and L, let its y-value be denoted as yP . For each such P, find all points in the half- slab bounded by L and L+d whose y-value fall within yP +d and yP -d. If the distance d′ between P and a point in the other half-slab is less than d, let d=d′. The final value of d is the answer.  Time complexity: O(n log n) Step 1: O(n log n) Steps 2~5: ⇒T(n) = O(n log n) T(n)=    2T(n/2)+O(n)+O(n) 1 , n > 1 , n = 1
  • 24. 4 -24 The convex hull problem  The convex hull of a set of planar points is the smallest convex polygon containing all of the points. concave polygon: convex polygon:
  • 25. 4 -25  The divide-and-conquer strategy to solve the problem:
  • 26. 4 -26  The merging procedure: 1. Select an interior point p. 2. There are 3 sequences of points which have increasing polar angles with respect to p. (1) g, h, i, j, k (2) a, b, c, d (3) f, e 3. Merge these 3 sequences into 1 sequence: g, h, a, b, f, c, e, d, i, j, k. 4. Apply Graham scan to examine the points one by one and eliminate the points which cause reflexive angles. (See the example on the next page.)
  • 27. 4 -27  e.g. points b and f need to be deleted. Final result:
  • 28. 4 -28 Divide-and-conquer for convex hull  Input : A set S of planar points  Output : A convex hull for S Step 1: If S contains no more than five points, use exhaustive searching to find the convex hull and return. Step 2: Find a median line perpendicular to the X-axis which divides S into SL and SR , with equal sizes. Step 3: Recursively construct convex hulls for SL and SR , denoted as Hull(SL ) and Hull(SR ), respectively.
  • 29. 4 -29  Step 4: Apply the merging procedure to merge Hull(SL ) and Hull(SR ) together to form a convex hull.  Time complexity: T(n) = 2T(n/2) + O(n) = O(n log n)
  • 30. 4 -30 Matrix multiplication  Let A, B and C be n × n matrices C = AB C(i, j) = A(i, k)B(k, j)  The straightforward method to perform a matrix multiplication requires O(n3 ) time. 1≤ ≤ ∑ k n
  • 31. 4 -31 Divide-and-conquer approach  C = AB C11 = A11 B11 + A12 B21 C12 = A11 B12 + A12 B22 C21 = A21 B11 + A22 B21 C22 = A21 B12 + A22 B22  Time complexity: (# of additions : n2 ) 3 C11 C12 = A11 A12 B11 B12 C21 C22 = A21 A22 B21 B22 T(n) =    b 8T(n/2)+cn2 , n ≤2 , n > 2
  • 32. 4 -32  P = (A11 + A22 )(B11 + B22 ) Q = (A21 + A22 )B11 R = A11 (B12 - B22 ) S = A22 (B21 - B11 ) T = (A11 + A12 )B22 U = (A21 - A11 )(B11 + B12 ) V = (A12 - A22 )(B21 + B22 ).  C11 = P + S - T + V C12 = R + T C21 = Q + S Strassen’s matrix multiplicaiton C11 = A11 B11 + A12 B21 C12 = A11 B12 + A12 B22 C21 = A21 B11 + A22 B21 C22 = A21 B12 + A22 B22
  • 33. 4 -33 Time complexity  7 multiplications and 18 additions or subtractions  Time complexity: T(n) =    b 7T(n/2)+an2 , n ≤2 , n > 2 )(O)(O )( constantais,7)( )1(7))()(1( )4/(7 )4/(7)((7 )2/(7)( 81.27log 7log4log7log4log7loglog 4 72 loglog 4 72 1 4 72 4 7 4 72 22 4 72 2 2 2 2 2 222222 22 nn ncnncn ccn Tan nTanan nTaan nTannT n nn kk n ≅= +=+= +≤ +++++= = ++= ++= += +− −   
  • 34. 4 -34 Fast Fourier transform (FFT)  Fourier transform  Inverse Fourier transform  Discrete Fourier transform(DFT) Given a0 , a1 , …, an-1 , compute 1where,2 −== ∫ ∞ ∞− idta(t)eb(f) πfti ∫ ∞ ∞− − = dtb(f)ea(t) πfti2 2 1 π ni n k kj k n k njki kj ea njeab /2 1 0 1 0 /2 where, 10, π π ωω == −≤≤= ∑ ∑ − = − =
  • 35. 4 -35 DFT and waveform(1)  Any periodic waveform can be decomposed into the linear sum of sinusoid functions (sine or cosine). 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -4 -3 -2 -1 0 1 2 3 4 7 15 48 56 f(頻率) ))56(2cos())48(2cos(3 ))15(2cos(3))7(2cos()( tt tttf ππ ππ + ++=
  • 36. 4 -36 The waveform of a music signal of 1 second The frequency spectrum of the music signal with DFT DFT and waveform (2)
  • 37. 4 -37  Inverse DFT:   DFT can be computed in O(n2 ) time by a straightforward method.  DFT can be solved by the divide-and-conquer strategy (FFT) in O(nlogn) time. 10, 1 1 0 −≤≤= ∑ − = − nkb n a n j jk jk ω 1sincos)( 12sin2cos)( sincos 2//22/ 2/2 −=+=== =+=== += ππω ππω θθ ππ ππ θ iee iee ie innin innin i FFT algorithm
  • 38. 4 -38 FFT algorithm when n=4  n=4, w=ei2π/4 , w4 =1, w2 =-1 b0 =a0 +a1 +a2 +a3 b1 =a0 +a1 w+a2 w2 +a3 w3 b2 =a0 +a1 w2 +a2 w4 +a3 w6 b3 =a0 +a1 w3 +a2 w6 +a3 w9  another form: b0 =(a0 +a2 )+(a1 +a3 ) b2 =(a0 +a2 w4 )+(a1 w2 +a3 w6 ) =(a0 +a2 )-(a1 +a3 )  When we calculate b0 , we shall calculate (a0 +a2 ) and (a1 +a3 ). Later, b2 van be easily calculated.  Similarly, b1 =(a0 + a2 w2 )+(a1 w+a3 w3 ) =(a0 -a2 )+w(a1 -a3 ) b =(a +a w6 )+(a w3 +a w9 ) =(a -a )-w(a -a ).
  • 39. 4 -39  n=8, w=ei2π/8 , w8 =1, w4 =-1 b0 =a0 +a1 +a2 +a3 +a4 +a5 +a6 +a7 b1 =a0 +a1 w+a2 w2 +a3 w3 +a4 w4 +a5 w5 +a6 w6 +a7 w7 b2 =a0 +a1 w2 +a2 w4 +a3 w6 +a4 w8 +a5 w10 +a6 w12 +a7 w14 b3 =a0 +a1 w3 +a2 w6 +a3 w9 +a4 w12 +a5 w15 +a6 w18 +a7 w21 b4 =a0 +a1 w4 +a2 w8 +a3 w12 +a4 w16 +a5 w20 +a6 w24 +a7 w28 b5 =a0 +a1 w5 +a2 w10 +a3 w15 +a4 w20 +a5 w25 +a6 w30 +a7 w35 b6 =a0 +a1 w6 +a2 w12 +a3 w18 +a4 w24 +a5 w30 +a6 w36 +a7 w42 b7 =a0 +a1 w7 +a2 w14 +a3 w21 +a4 w28 +a5 w35 +a6 w42 +a7 w49 FFT algorithm when n=8
  • 40. 4 -40  After reordering, we have b0 =(a0 +a2 +a4 +a6 )+(a1 +a3 +a5 +a7 ) b1 =(a0 +a2 w2 +a4 w4 +a6 w6 )+ w(a1 +a3 w2 +a5 w4 +a7 w6 ) b2 =(a0 +a2 w4 +a4 w8 +a6 w12 )+ w2 (a1 +a3 w4 +a5 w8 +a7 w12 ) b3 =(a0 +a2 w6 +a4 w12 +a6 w18 )+ w3 (a1 +a3 w6 +a5 w12 +a7 w18 ) b4 =(a0 +a2 +a4 +a6 )-(a1 +a3 +a5 +a7 ) b5 =(a0 +a2 w2 +a4 w4 +a6 w6 )-w(a1 +a3 w2 +a5 w4 +a7 w6 ) b6 =(a0 +a2 w4 +a4 w8 +a6 w12 )-w2 (a1 +a3 w4 +a5 w8 +a7 w12 ) b7 =(a0 +a2 w6 +a4 w12 +a6 w18 )-w3 (a1 +a3 w6 +a5 w12 +a7 w18 )  Rewrite as b0 =c0 +d0 b4 =c0 -d0 =c0 +w4 d0 b1 =c1 +wd1 b5 =c1 -wd1 =c1 +w5 d1 b2 =c2 +w2 d2 b6 =c2 -w2 d2 =c2 +w6 d2
  • 41. 4 -41  c0 =a0 +a2 +a4 +a6 c1 =a0 +a2 w2 +a4 w4 +a6 w6 c2 =a0 +a2 w4 +a4 w8 +a6 w12 c3 =a0 +a2 w6 +a4 w12 +a6 w18  Let x=w2 =ei2π/4 c0 =a0 +a2 +a4 +a6 c1 =a0 +a2 x+a4 x2 +a6 x3 c2 =a0 +a2 x2 +a4 x4 +a6 x6 c3 =a0 +a2 x3 +a4 x6 +a6 x9  Thus, {c0 ,c1 ,c2 ,c3 } is FFT of {a0 ,a2 ,a4 ,a6 }. Similarly, {d0 ,d1 ,d2 ,d3 } is FFT of {a1 ,a3 ,a5 ,a7 }.
  • 42. 4 -42 General FFT  In general, let w=ei2π/n (assume n is even.) wn =1, wn/2 =-1 bj =a0 +a1 wj +a2 w2j +…+an-1 w(n-1)j , ={a0 +a2 w2j +a4 w4j +…+an-2 w(n-2)j }+ wj {a1 +a3 w2j +a5 w4j +…+an-1 w(n-2)j } =cj +wj dj bj+n/2 =a0 +a1 wj+n/2 +a2 w2j+n +a3 w3j+3n/2 +… +an-1 w(n-1)j+n(n-1)/2 =a0 -a1 wj +a2 w2j -a3 w3j +…+an-2 w(n-2)j -an-1 w(n-1)j =cj -wj dj =cj +wj+n/2 dj
  • 43. 4 -43 Divide-and-conquer (FFT)  Input: a0 , a1 , …, an-1 , n = 2k  Output: bj , j=0, 1, 2, …, n-1 where Step 1: If n=2, compute b0 = a0 + a1 , b1 = a0 - a1 , and return. Step 2: Recursively find the Fourier transform of {a0 , a2 , a4 ,…, an-2 } and {a1 , a3 , a5 ,…,an-1 }, whose results are denoted as {c0 , c1 , c2 ,…, cn/2-1 } and {d0 , d1 , d2 ,…, dn/2-1 }. ∑−≤≤ == 10 2 where nk π/nikj kj ew,wab
  • 44. 4 -44 Step 3: Compute bj : bj = cj + wj dj for 0 ≤ j ≤ n/2 - 1 bj+n/2 = cj - wj dj for 0 ≤ j ≤ n/2 - 1.  Time complexity: T(n) = 2T(n/2) + O(n) = O(n log n)