Presentation is loading. Please wait.

Presentation is loading. Please wait.

Shell Sort and Merge Sort

Similar presentations


Presentation on theme: "Shell Sort and Merge Sort"— Presentation transcript:

1 Shell Sort and Merge Sort
Lecture 34 Sections 13.1, 13.4 Mon, Apr 14, 2008 2/19/2019 Sorting

2 Sorting To sort a list is to arrange the members into either increasing order or decreasing order. The order is determined by an order operator. <, >, <=, or >=. This operator must define a total order on the class. Transitivity: If a < b and b < c, then a < c. Trichotomy: Either a = b, or a < b, or a > b. 2/19/2019 Sorting

3 Inefficient Sorting Algorithms
Most elementary sorting algorithms are inefficient for long lists. Examples Bubble Sort. Selection Sort. Insertion Sort. These algorithms have run times of order O(n2). 2/19/2019 Sorting

4 Efficient Sorting Algorithms
The efficient sorting algorithms are more complicated. Examples Shell Sort Merge Sort Quick Sort These algorithms have run times of order O(n log n). 2/19/2019 Sorting

5 Comparison of Algorithms
Let A be an algorithm of order O(n2). Let B be an algorithm of order O(n log n). Suppose both algorithms require 1 sec to process a list of size 100. How long will they take to process lists of sizes 103, 104, 105 , 106 , 107 , 108, and 109? 2/19/2019 Sorting

6 Comparison of Algorithms
Algorithm A has run time Algorithm B has run time Evaluate these functions when x = 103, 104, 105 , 106 , 107 , 108, and 109. 2/19/2019 Sorting

7 Comparison of Algorithms
Algorithm A Algorithm B 102 1 s 103 100 s 15 s 104 10 ms 200 s 105 1 s 2.5 ms 106 100 s 30 ms 107 2.8 h 350 ms 108 11.6 d 4 s 109 3.2 y 45 s 2/19/2019 Sorting

8 The Shell Sort The Shell Sort is a variation of the Insertion Sort.
The run time is O(n log n) (with probability near 100%). The worst case has run time O(n2), but it is exceedingly unlikely. 2/19/2019 Sorting

9 The Shell Sort Algorithm
Start with a “gap” equal to half the size of the list. Perform Insertion Sorts on the interwoven sublists (k = gap). {a0, ak, a2k, ...} {a1, ak + 1, a2k + 1, ...} {a2, ak + 2, a2k + 2, ...}, : {ak - 1, a2k - 1, a3k - 1, ...}. 2/19/2019 Sorting

10 Example: The Shell Sort
Begin with a list of size n = 9. Initialize gap = 4 Pass #1, first sublist. 30 60 80 20 90 50 10 70 40 30 90 40 4 8 30 60 80 20 90 50 10 70 40 30 40 90 4 8 2/19/2019 Sorting

11 Example: The Shell Sort
Pass #1, 2nd sublist. 30 60 80 20 40 50 10 70 90 60 50 1 5 30 60 80 20 40 50 10 70 90 50 60 80 10 1 5 2/19/2019 Sorting

12 Example: The Shell Sort
Pass #1, 3rd sublist. 30 60 80 20 40 50 10 70 90 50 60 80 10 2 6 30 50 80 20 40 60 10 70 90 10 80 20 70 2 6 2/19/2019 Sorting

13 Example: The Shell Sort
Pass #1, 4th sublist. 30 50 80 20 40 60 10 70 90 10 80 20 70 3 7 30 50 10 20 40 60 80 70 90 20 70 3 7 2/19/2019 Sorting

14 Example: The Shell Sort
Divide gap by 2 and repeat the above procedure. Quit when gap = 0. 2/19/2019 Sorting

15 Example: The Shell Sort
Halve the gap: gap = 4 / 2 = 2. Pass #2, 1st sublist 30 10 40 80 90 30 50 10 20 40 60 80 70 90 2 4 6 8 10 30 40 80 90 30 50 10 20 40 60 80 70 90 2 4 6 8 2/19/2019 Sorting

16 Example: The Shell Sort
Halve the gap: gap = 4 / 2 = 2. Pass #2, 2nd sublist 10 50 30 20 40 60 80 70 90 50 20 60 70 1 3 5 7 10 50 30 20 40 60 80 70 90 20 50 60 70 1 3 5 7 2/19/2019 Sorting

17 Example: The Shell Sort
Halve the gap: gap = 2 / 2 = 1. 10 20 30 50 40 60 80 70 90 10 20 30 50 40 60 80 70 90 1 2 3 4 5 6 7 8 10 20 30 50 40 60 80 70 90 10 20 30 40 50 60 70 80 90 1 2 3 4 5 6 7 8 2/19/2019 Sorting

18 The Merge Sort Merging two sorted lists of length n has run time O(n).
The run time of the Merge Sort is O(n log n). 2/19/2019 Sorting

19 The Merge Sort Algorithm
Begin by considering the list to be a collection of sublists each of length 1. Merge adjacent sublists in pairs. Continue to merge adjacent sublists until there remains only one sublist. 50 30 30 50 70 20 80 40 10 60 2/19/2019 Sorting

20 Example: The Merge Sort
Begin with a list of size n = 8. Initial sublist size = 1. Pass #1 50 30 70 20 80 40 10 60 30 50 70 20 80 40 10 60 30 50 20 70 80 40 10 60 30 50 20 70 40 80 10 60 30 50 20 70 40 80 10 60 2/19/2019 Sorting

21 Example: The Merge Sort
Sublist size = 2. Pass #2. 30 50 20 70 40 80 10 60 20 30 50 70 40 80 10 60 20 30 50 70 40 80 10 60 10 40 60 80 2/19/2019 Sorting

22 Example: The Merge Sort
Sublist size = 4. Pass #3. 20 30 50 70 10 40 60 80 10 20 30 40 50 60 70 80 2/19/2019 Sorting


Download ppt "Shell Sort and Merge Sort"

Similar presentations


Ads by Google