0% found this document useful (0 votes)
153 views8 pages

Divide-and-Conquer Technique:: Finding Maximum & Minimum

The document discusses the divide-and-conquer technique for finding the maximum and minimum values in an array. It describes dividing the array into subproblems of equal size, solving the subproblems recursively, and combining the results to find the overall maximum and minimum. The algorithm uses divide and conquer to find the max and min in O(n) time, compared to a straightforward approach that takes 2(n-1) comparisons.

Uploaded by

Faria Farhad Mim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
153 views8 pages

Divide-and-Conquer Technique:: Finding Maximum & Minimum

The document discusses the divide-and-conquer technique for finding the maximum and minimum values in an array. It describes dividing the array into subproblems of equal size, solving the subproblems recursively, and combining the results to find the overall maximum and minimum. The algorithm uses divide and conquer to find the max and min in O(n) time, compared to a straightforward approach that takes 2(n-1) comparisons.

Uploaded by

Faria Farhad Mim
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Divide-and-Conquer Technique:

Finding Maximum & Minimum

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET


Divide-and-Conquer
 Divide-and-Conquer is a general
algorithm design paradigm:
 Divide the problem into a number of
subproblems that are smaller
instances of the same problem
 Conquer the subproblems by solving
them recursively
 Combine the solutions to the
subproblems into the solution for the
original problem
 The base case for the recursion are
subproblems of constant size
 Analysis can be done using recurrence
equations

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET


Divide-and-Conquer

a problem of size n

subproblem 1 subproblem 2
of size n/2 Divide of size n/2

a solution to a solution to
subproblem 1 subproblem 2

a solution to
the original problem

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET


Finding Maximum and Minimum

• Input: an array A[1..n] of n numbers


• Output: the maximum and minimum value
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A 13 -13 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7

List List 1 List 2


n elements n/2 elements n/2 elements

min, max min1, max1 min2, max2

min = MIN ( min1, min2 )


max = MAX ( max1, max2 )
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET
Finding Maximum and Minimum

The straightforward algorithm:

max ← min ← A (1);


for i ← 2 to n do
if (A (i) > max) then max ← A (i);
if (A (i) < min) then min ← A (i);

No. of comparisons: 2(n – 1)

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET


Finding Maximum and Minimum
The Divide-and-Conquer algorithm:
procedure Rmaxmin (i, j, fmax, fmin); // i, j are index #, fmax,
begin // fmin are output parameters
case:
i = j: fmax ← fmin ← A[i];
i = j –1: if A[i] < A[j] then fmax ← A[j];
fmin ← A[i];
else fmax ← A[i];
fmin ← A[j];
else: mid ← (i + j)/2;
call Rmaxmin (i, mid, gmax, gmin);
call Rmaxmin (mid+1, j, hmax, hmin);
fmax ← MAX (gmax, hmax);
fmin ← MIN (gmin, hmin);
end
end;
Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET
Finding Maximum and Minimum
Example: find max and min in the array:
22, 13, -5, -8, 15, 60, 17, 31, 47 ( n = 9 )

Index: 1 2 3 4 5 6 7 8 9
Array: 22 13 -5 -8 15 60 17 31 47

(1)
Rmaxmin(1, 9, 60, -8)
(6)

1, 5, 22, -8 6, 9, 60, 17
(2) (5) (7) (8)

1, 3, 22, -5 4, 5, 15, -8 6, 7, 60, 17 8, 9, 47, 31


(3) (4)

1, 2, 22, 13 3, 3, -5, -5

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET


Finding Maximum and Minimum

The recurrence for the worst-case running time T(n) is

T(n) = (1) if n = 1 or 2
2T(n/2) + (1) if n > 2

equivalently

T(n) = b if n = 1 or 2
2T(n/2) + b if n > 2

By solving the recurrence, we get


T(n) is O(n)

Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET

You might also like