IIT Bombay
Computer Programming
Dr. Deepak B Phatak
Dr. Supratik Chakraborty
Department of Computer Science and Engineering
IIT Bombay
Session: Merge Sort - Intuition
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 1
Quick Recap of Relevant Topics
IIT Bombay
• The sorting problem
• Selection sort
• Intuition
• C++ implementation
• Analysis of performance
2 Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay
Overview of This Lecture
IIT Bombay
• Merge sort
• Intuition
• Animated example
3 Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay
Recall: Intuition Behind Selection Sort
IIT Bombay
Get only the first
24 1 27 element in its right place
18 18 Solve part of the problem
17 17
Arrive at a similar but
25 25
“simpler” problem to solve:
1 27 24
Sort remaining marks
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 4
A General Paradigm In Computing
IIT Bombay
• Decompose a larger problem into smaller sub-problems
• Solve each sub-problem separately
Often using same techniques as used to address the larger
problem
• Combine results of sub-problems to obtain solution of larger
problem
DIVIDE-AND-CONQUER
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 5
Sorting by Divide-and-Conquer
IIT Bombay
24
24 Divide Similar but simpler problem
18
18 Sort first half of array
17
17
25 25
Similar but simpler problem
27 27 Sort second half of array
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 6
Sorting by Divide-and-Conquer
IIT Bombay
24 Sort 24
24 Divide
18 18
18
17 17
17
25 25
Similar but simpler problem
27 27 Sort second half of array
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 7
Sorting by Divide-and-Conquer
IIT Bombay
24 Sort 24 Merge
24 Divide 27
18 18
18 25
17 17
17 24
25 25 Sort 27 24
27 27 25 18
24 24 24 17
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 8
What Were The Steps?
IIT Bombay
• Divide an array of size n into two sub-arrays of size n/2
• Sub-array sizes may differ by 1 if n is odd
• Easy!
• Sort each sub-array of size n/2 Wait for a
• Hmm … how? few slides !!!
• Selection sort ???
• Merge sorted sub-arrays, each of size n/2
• Hmm … how?
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 9
Merging Sorted Sub-arrays
IIT Bombay
24 27 > 24
Sorted
Sub-array1 18
17
27
Sorted
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 10
Merging Sorted Sub-arrays
IIT Bombay
24 25 > 24
Sorted 27
Sub-array1 18
17
27
Sorted
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 11
Merging Sorted Sub-arrays
IIT Bombay
24 24 > 24
Sorted 27
Sub-array1 18
25
17
27
Sorted
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 12
Merging Sorted Sub-arrays
IIT Bombay
24 24 > 18
Sorted 27
Sub-array1 18
25
17
24
27
Sorted
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 13
Merging Sorted Sub-arrays
IIT Bombay
24 Sub-array2
Sorted 27 over
Sub-array1 18
25
17
24
24
27
Sorted
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 14
Merging Sorted Sub-arrays
IIT Bombay
24 Sub-array2
Sorted 27 over
Sub-array1 18
25
17
24
24
27
Sorted
18
Sub-array2 25
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 15
Merging Sorted Sub-arrays
IIT Bombay
24
Both sorted
Sorted 24
27 sub-arrays
Sub-array1 18 over
18
25
17
24
Merged sorted array
24
27
Sorted
18
Sub-array2 25
17
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 16
What Were The Steps?
IIT Bombay
• Divide an array of size n (assume n is even) into two sub-
arrays of size n/2
• Easy! We were trying
• Sort each sub-array of size n/2 to sort an array
• Hmm … how? of size n
• Selection sort ???
• Merge sorted sub-arrays, each of size n/2
• Hmm … how?
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 17
What Were The Steps?
IIT Bombay
• Divide an array of size n (assume n is even) into two sub-
arrays of size n/2 Why not try
• Easy!
the same steps
• Sort each sub-array of size n/2 on each sub-
• Hmm … how? array?
• Selection sort ???
• Merge sorted sub-arrays, each of size n/2
• Hmm … how?
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 18
What Were The Steps?
IIT Bombay
• Divide an array of size n (assume n is even) into two sub-
arrays of size n/2 Recursively
• Easy! sort each sub-
• Sort each sub-array of size n/2 array by same
• Hmm … how?
method
• Selection sort ???
• Merge sorted sub-arrays, each of size n/2
• Hmm … how?
Termination case of recursion:
Array of size 1 (i.e. n is 1) is of course sorted !!!
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 19
Divide-and-Conquer In Action
IIT Bombay
24
24 Divide
18
18
17
17
25 25
27 27
Similar but simpler problems
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 20
Divide-and-Conquer In Action
IIT Bombay
24 24
24
18
18 18
17
17 17
Divide
25 25
27 27
Similar but simpler problems
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 21
Divide-and-Conquer In Action
IIT Bombay
24 24 Termination case
24
18
18 18
17
17 17
25 25
27 27
Similar but simpler problems
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 22
Divide-and-Conquer In Action
IIT Bombay
24 24 Divide
24
18 18
18 18
17
17 17 17
25 25
27 27
Similar but simpler problems
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 23
Divide-and-Conquer In Action
IIT Bombay
24 24
24 Termination case
18 18
18 18
17
17 17 17
25 25
27 27
Similar but simpler problems
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 24
Divide-and-Conquer In Action
IIT Bombay
24 24
24
18 18
18 18
17
17 17 17
Termination case
25 25
27 27
Similar but simpler problem
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 25
Divide-and-Conquer In Action
IIT Bombay
24 24 Merge
24
18 18
18 18
17
17 17 17
25 25
27 27
Similar but simpler problem
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 26
Divide-and-Conquer In Action
IIT Bombay
24 24
24
18
18 18
17
17 17
25 25
27 27
Similar but simpler problem
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 27
Divide-and-Conquer In Action
IIT Bombay
24 24
24
18
18 18
17
17 17
Merge
25 25
27 27
Similar but simpler problem
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 28
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18
17
17
25 25
27 27
Similar but simpler problem
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 29
Divide-and-Conquer In Action
IIT Bombay
24
24 Similar but simpler problems
18
18
17
17
Divide
25 25 25
27 27
27
24 24
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 30
Divide-and-Conquer In Action
IIT Bombay
24
24 Similar but simpler problem
18
18
17
17
Termination case
25 25 25
27 27
27
24 24
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 31
Divide-and-Conquer In Action
IIT Bombay
24
24 Similar but simpler problems
18
18
17
17
25 25 Divide
25
27 27 27
27
24 24
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 32
Divide-and-Conquer In Action
IIT Bombay
24
24 Similar but simpler problem
18
18
17
17
25 25 25 Termination case
27 27 27
27
24 24
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 33
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18
17
17
25 25 25
27 27 27
27
24 24
24 24
Termination case
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 34
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18
17
17 Merge
25 25 25
27 27 27
27
24 24
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 35
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18
17
17
25 25 25
27 27
27
24 24
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 36
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18 Merge
17
17
25 25 25
27 27
27
24 24
24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 37
Divide-and-Conquer In Action
IIT Bombay
24
24
18
18
17
17
25 27
27 25
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 38
Divide-and-Conquer In Action
IIT Bombay
Merge 24
24
18
18
17
17
25 27
27 25
24 24
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 39
Divide-and-Conquer In Action
IIT Bombay
27
25
24 Sorted array !!!
24
18
17
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 40
Merge Sort
IIT Bombay
24 27
18 25
17 24
MERGE SORT
25 24
27 18
24 17
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 41
Summary
IIT Bombay
• Merge sort
• Intuition
• Divide-and-conquer approach, leading to recursive formulation
• Key role of merging sorted sub-arrays
Dr. Deepak B. Phatak & Dr. Supratik Chakraborty, IIT Bombay 42