0% found this document useful (0 votes)
13 views23 pages

03 DivideConquer Merge Sort

Uploaded by

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

03 DivideConquer Merge Sort

Uploaded by

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

Divide-and-Conquer Technique:

Merge Sort

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


Merge Sort and Quick Sort

Two well-known sorting algorithms adopt this divide-and-


conquer strategy

 Merge sort
 Divide step is trivial – just split the list into two equal parts
 Work is carried out in the conquer step by merging two

sorted lists

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


Merge Sort: Algorithm

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


Merge Sort: Algorithm

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


Merge Sort: Example

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


Execution Example

Partition
7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 2 9 4  2 4 7 9 3 8 6 1  1 3 8 6

7 2  2 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 7
Execution Example

Recursive call, partition


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

7 2  2 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 8
Execution Example

Recursive call, partition


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 9
Execution Example

Recursive call, base case


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 10
Execution Example

Recursive call, base case


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 11
Execution Example

Merge
7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 12
Execution Example

Recursive call, …, base case, merge


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 13
Execution Example

Merge
7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 8 6

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 14
Execution Example

Recursive call, …, merge, merge


7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 6 8

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 15
Execution Example

Merge
7 2 9 43 8 6 1  1 2 3 4 6 7 8 9

7 29 4 2 4 7 9 3 8 6 1  1 3 6 8

722 7 9 4  4 9 3 8  3 8 6 1  1 6

77 22 99 44 33 88 66 11

Merge Sort 16
Merge Sort: Running Time

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

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

equivalently

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

Solve this recurrence by


(1) iteratively expansion
(2) using the recursion tree

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


Cormen 2.3.2: Analyzing divide-and-conquer algorithms

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


Cormen 2.3.2: Analyzing divide-and-conquer algorithms

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


Merge Sort: Running Time (Iterative Expansion)

Note that base, T(n) =b, case occurs when 2i = n.


That is, i = log n.
So,

Thus, T(n) is O(n log n).


Dr. Md. Abul Kashem Mia, Professor, CSE Dept, BUET
Merge Sort: Running Time (Recursion Tree)

 Draw the recursion tree for the recurrence relation and look for a
pattern:

time
depth T’s size
0 1 n bn

1 2 n/2 bn

i 2i n/2i bn

… … … …

Total time = bn + bn log n


(last level plus all previous levels)

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


(a)

(b)

(c)  
Cormen: Figure 2.5 How to construct a recursion tree for the recurrence
. Part (a) shows , which progressively expands in (b)–(d) to form the
recursion tree. The fully expanded tree in part (d) has levels (i.e., it has
height , as indicated), and each level contributes a total cost of . The total
cost, therefore, is , which is,

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


 https://www.youtube.com/watch?v=MhT7XmxhaCE&ab_channel=AbdulBari
 https://www.youtube.com/watch?v=4V30R3I1vLI&ab_channel=AbdulBari
 https://www.youtube.com/watch?v=IawM82BQ4II&ab_channel=AbdulBari
 https://www.youtube.com/watch?v=JvcqtZk2mng&ab_channel=AbdulBari
 https://www.youtube.com/watch?v=2L8keMZNkqQ&ab_channel=randerson112358
 https://www.youtube.com/watch?v=1K9ebQJosvo&ab_channel=AbdulBari
 https://www.youtube.com/watch?v=XcZw01FuH18&ab_channel=AbdulBari

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

You might also like