Lecture 12 - Merge Sort
Lecture 12 - Merge Sort
1
Merge Sort
• Idea: Order a list of values by recursively dividing the list in half until
each sub-list has one element, then recombining
• More specifically:
• Divide the n element sequence to be sorted into two subsequences
of n/2 elements each.
• Conquer: Sort the two subsequences to produce the sorted answer.
• Combine: Merge the two sorted sub sequences to produce the
sorted answer.
2
sort merge(0, n/2, n-1) sort
Merge Sort
Base Case: When the sequences to be sorted has length 1.
Unsorted
Sorted 66
12 108
14 56
34 14
56 89
66 12
89 108
34
Divide
Merge Divide
Merge
66
14 108
56 56
66 108
14 89
12 12
34 34
89
Divide
Merge Divide
Merge Divide
Merge Divide
BCase
Merge
66
66 108
108 56
14 14
56 89
12 12
89 34
Merge
Divide
BCase Divide
BCase
Merge Divide
BCase
Merge Divide
BCase
Merge
3
66 108 56 14 89 12
Merge Sort
5 1 3 4 2 6
4
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
6
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
7
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
1 5 3 2 4 6
8
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
1 5 3 2 4 6
1 3 5 2 4 6
9
Merge Sort
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
5 1 3 4 2 6
1 5 3 2 4 6
1 3 5 2 4 6
10
1 2 3 4 5 6
Merge Sort
11
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝑠𝑜𝑟𝑡𝑒𝑑 𝑠𝑜𝑟𝑡𝑒𝑑
12
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 𝑅
13
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 𝑅
14
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 𝑅 2 4 6 9
15
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
16
Merge Sort Example
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
17
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
18
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
19
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
20
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
21
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
22
Merge Sort Example
𝑘
𝐴 1 3 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
23
Merge Sort Example
𝑘
𝐴 1 2 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
24
Merge Sort Example
𝑘
𝐴 1 2 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
25
Merge Sort Example
𝑘
𝐴 1 2 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
26
Merge Sort Example
𝑘
𝐴 1 2 7 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
27
Merge Sort Example
𝑘
𝐴 1 2 3 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
28
Merge Sort Example
𝑘
𝐴 1 2 3 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
29
Merge Sort Example
𝑘
𝐴 1 2 3 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
30
Merge Sort Example
𝑘
𝐴 1 2 3 8 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
31
Merge Sort Example
𝑘
𝐴 1 2 3 4 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
32
Merge Sort Example
𝑘
𝐴 1 2 3 4 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
33
Merge Sort Example
𝑘
𝐴 1 2 3 4 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
34
Merge Sort Example
𝑘
𝐴 1 2 3 4 2 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
35
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
36
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
37
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
38
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 4 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
39
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
40
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
41
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
42
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 6 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
43
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
44
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
45
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
46
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
47
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
48
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
49
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
𝐴 1 3 7 8 2 4 6 9
Unsorted Arrays
𝐴 1 2 3 4 6 7 8 9
Arrays Sorted 50
Merge Sort Example
𝑘
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
𝐴 1 3 7 8 2 4 6 9
Unsorted Arrays
𝐴 1 2 3 4 6 7 8 9
Arrays Sorted 51
𝐴 1 2 3 4 6 7 8 9
𝑝 𝑞 +1 𝑟
𝐿 1 3 7 8 ∞ 𝑅 2 4 6 9 ∞
𝑖 𝑗
𝐴 1 3 7 8 2 4 6 9
Unsorted Arrays
𝐴 1 2 3 4 6 7 8 9
Arrays Sorted 52
Time Complexity of Merge Procedure =
Merge Sort
Space Complexity of Merge sort
𝑛
𝑛 𝑛
2 2
𝑛 𝑛 𝑛 𝑛
4 4 4 4
.
.
.
53
Merge Sort
Time Complexity of Merge sort
𝑛
𝑇 (𝑛)
𝑛 𝑛
2 2
𝑛 𝑛 𝑛 𝑛
4 4 4 4
𝑛
𝑇 (
2
) .
𝑛
𝑇 (
2
) .
𝑂 (𝑛) .
54
Difference