0% found this document useful (0 votes)
6 views

Lecture 12 - Merge Sort

Uploaded by

kifal535
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Lecture 12 - Merge Sort

Uploaded by

kifal535
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 55

CS-854 – Advanced Algorithm Analysis

Instructor: Dr. Zuhair Zafar


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.

mergeSort(0, n/2-1) mergeSort(n/2, n-1)

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

Space Complexity of Merge Procedure =


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 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

Quick Sort Merge Sort


Best Case Space Complexity: Best Case Space Complexity:
Worst Case Space Complexity: Worst Case Space Complexity:
Time Complexity (Best Case): Time Complexity (Best Case):
Time Complexity (Worst Case): Time Complexity (Worst Case):
Works faster for smaller arrays Works in consistent speed for all arrays
Requires less space Requires a lot of space
No need for temporary array Needs a temporary array
Unstable sort Stable Sort
Preferred for arrays Preferred for linked lists
Does not work well with large datasets Works well with large datasets
55
Internal sorting External Sorting

You might also like