9/8/2017 1 Elementary Sorting Algorithms COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 1 Selection Sort Insertion Sort Bubble Sort Shell Sort Elementary Sorting Algorithms (Selection Sort) For each iteration, a minimum is found in the unsorted sublist and it is placed into the correct position in the sorted sublist. COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 2 1 Selection sort (A) 2 { 3 for j = 0 to |A|-1 do 4 { 5 Min = j 6 for k= j+1 to |A|-1 7 { 8 if A[k] < A[Min] then 9 Min = k 10 } 11 If Min ≠ j 12 Swap (A[j], A[Min]) 13 } 14 } C 1 C 2 C 3 C 4 C 5 C 6 C 7 Elementary Sorting Algorithms (Selection Sort) Input: A sequence of n numbers <a 1 , a 2 , a 3 , … a n > Output: Permutation <a’ 1 , a’ 2 , a’ 3 , … a’ n > of input sequence such that a’ 1 ≤ a’ 2 ≤ a’ 3 ≤ … ≤ a’ n COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 3 6 3 1 4 2 5 1 3 6 4 2 5 1 2 6 4 3 5 1 2 3 4 6 5 1 2 3 4 6 5 1 2 3 4 5 6 Min = 1 Min = 2 Min = 3 Min = 4 Min = 5 Unsorted sub list Sorted sub list Swap(A[0], A[2]) Swap(A[1], A[4]) Swap(A[2], A[4]) Swap(A[4], A[5]) Don’t need to swap COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 4 9 3 7 2 12 1 4 11 6 5 8 10 Sorted Sublist Unsorted Sublist Elementary Sorting Algorithms (Selection Sort) COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 5 9 3 7 2 12 1 4 11 6 5 8 10 Current Min 9 > 3 ? j Sorted Sublist Unsorted Sublist Elementary Sorting Algorithms (Selection Sort) COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 6 9 3 7 2 12 1 4 11 6 5 8 10 Current Min 3 > 7 ? j Sorted Sublist Unsorted Sublist Elementary Sorting Algorithms (Selection Sort)
26
Embed
Elementary Sorting Algorithmsfaculty.salisbury.edu/~stlauterburg/COSC320/lectures/_fa...Elementary Sorting Algorithms COSC 320 - Fall 2017 Slide courtesy of Dr. Sang-Eon Park 1 Selection
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
982017
1
Elementary Sorting Algorithms
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
1
Selection Sort
Insertion Sort
Bubble Sort
Shell Sort
Elementary Sorting Algorithms(Selection Sort)
For each iteration a minimum is found in the unsorted sublistand it is placed into the correct position in the sorted sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
2
1 Selection sort (A)
2
3 for j = 0 to |A|-1 do
4
5 Min = j
6 for k= j+1 to |A|-1
7
8 if A[k] lt A[Min] then
9 Min = k
10
11 If Min ne j
12 Swap (A[j] A[Min])
13
14
C1
C2
C3
C4
C5
C6
C7
Elementary Sorting Algorithms(Selection Sort)
Input A sequence of n numbers lta1 a2 a3 hellip angt
Output Permutation ltarsquo1 arsquo2 arsquo3 hellip arsquongt of input sequence such
that arsquo1 le arsquo2 le arsquo3 le hellip le arsquon
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
3
6 3 1 4 2 5
1 3 6 4 2 5
1 2 6 4 3 5
1 2 3 4 6 5
1 2 3 4 6 5
1 2 3 4 5 6
Min = 1
Min = 2
Min = 3
Min = 4
Min = 5
Unsorted sub list
Sorted sub list
Swap(A[0] A[2])
Swap(A[1] A[4])
Swap(A[2] A[4])
Swap(A[4] A[5])
Donrsquot need to swap
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
4
9 3 7 2 12 1 4 11 6 5 8 10
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Selection Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
5
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
9 gt 3
j
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Selection Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
6
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 7
j
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Selection Sort)
982017
2
Elementary Sorting Algorithms(Selection Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
7
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 2
j
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Selection Sort)
8
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
9
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 1
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
10
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
11
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
12
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
3
Elementary Sorting Algorithms(Selection Sort)
13
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
14
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
15
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
16
9 3 7 2 12 1 4 11 6 5 8 10
Min
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
17
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 7
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
18
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 2
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
4
Elementary Sorting Algorithms(Selection Sort)
19
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
20
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 9
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
21
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
22
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
23
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
24
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
982017
5
25
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
26
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
27
1 3 7 2 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
Elementary Sorting Algorithms(Selection Sort)
28
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
7 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
29
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
30
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
2
Elementary Sorting Algorithms(Selection Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
7
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 2
j
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Selection Sort)
8
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
9
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
3 gt 1
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
10
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
11
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
12
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
3
Elementary Sorting Algorithms(Selection Sort)
13
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
14
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
15
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
16
9 3 7 2 12 1 4 11 6 5 8 10
Min
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
17
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 7
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
18
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 2
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
4
Elementary Sorting Algorithms(Selection Sort)
19
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
20
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 9
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
21
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
22
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
23
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
24
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
982017
5
25
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
26
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
27
1 3 7 2 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
Elementary Sorting Algorithms(Selection Sort)
28
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
7 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
29
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
30
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
3
Elementary Sorting Algorithms(Selection Sort)
13
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
14
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
15
9 3 7 2 12 1 4 11 6 5 8 10
Current Min
1 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
16
9 3 7 2 12 1 4 11 6 5 8 10
Min
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
17
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 7
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
18
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
3 gt 2
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
4
Elementary Sorting Algorithms(Selection Sort)
19
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
20
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 9
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
21
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
22
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
23
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
24
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
982017
5
25
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
26
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
27
1 3 7 2 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
Elementary Sorting Algorithms(Selection Sort)
28
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
7 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
29
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
30
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
4
Elementary Sorting Algorithms(Selection Sort)
19
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
20
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 9
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
21
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 4
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
22
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 11
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
23
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 6
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
24
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 5
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
982017
5
25
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
26
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
27
1 3 7 2 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
Elementary Sorting Algorithms(Selection Sort)
28
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
7 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
29
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
30
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
5
25
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 8
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
26
1 3 7 2 12 9 4 11 6 5 8 10
Current Min
2 gt 10
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
27
1 3 7 2 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
Elementary Sorting Algorithms(Selection Sort)
28
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
7 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
29
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
30
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
6
Elementary Sorting Algorithms(Selection Sort)
31
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
32
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
33
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
34
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
35
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
36
1 2 7 3 12 9 4 11 6 5 8 10
Current Min
j
3 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
7
Elementary Sorting Algorithms(Selection Sort)
37
1 2 7 3 12 9 4 11 6 5 8 10
Minimum
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
38
1 2 3 7 12 9 4 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
39
1 2 3 4 12 9 7 11 6 5 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
40
1 2 3 4 5 9 7 11 6 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
41
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
42
1 2 3 4 5 6 7 11 9 12 8 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
8
Elementary Sorting Algorithms(Selection Sort)
43
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
44
1 2 3 4 5 6 7 8 9 12 11 10
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
45
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
46
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
47
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
48
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
9
Elementary Sorting Algorithms(Selection Sort)
49
1 2 3 4 5 6 7 8 9 10 11 12
j
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
50
1 2 3 4 5 6 7 8 9 10 11 12
j
Minimum
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort)
51
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Selection Sort Analysis Best case)
For each iteration a minimum is found in the sub list and it is placed into the correct position in the sorted sub list
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
10
Elementary Sorting Algorithms(Insertion Sort)
Input A sequence of n numbers lta1 a2 a3 hellip angt
Output Permutation ltarsquo1 arsquo2 arsquo3 hellip arsquongt of input sequence such
that arsquo1 le arsquo2 le arsquo3 le hellip le arsquon
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
55
6 3 1 4 2 5
3 6 1 4 2 5
1 3 6 4 2 5
1 3 4 6 2 5
1 2 3 4 6 5
1 2 3 4 5 6
Insert 3
Insert 1
Insert 4
Insert 2
Insert 5
Elementary Sorting Algorithms(Insertion Sort)
For each iteration a element is placed into right position in sorted sub list
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
56
1 Insertion sort (A)
2
3 for j = 2 to length of array A do
4
5 key = A[j]
6 i = j ndash 1
7 while i gt 0 and A[i] gtkey do
8
9 A[i +1] = A[i]
10 i = i ndash1
11
12 A[i +1] = key
13
14
C1
C2
C3
C4
C5
C6
C7
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
57
9 3 7 2 12 1 4 11 6 5 8 10
Sorted Sublist
Unsorted Sublist
Working Sublist
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
58
3 7 2 12 1 4 11 6 5 8 10
9 lt 3
9
Sorted Sublist
Unsorted Sublist
Working Sublist
Inserting 3
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
59
3 7 2 12 1 4 11 6 5 8 10
9 lt 7
Sorted Sublist
Unsorted Sublist
Working Sublist
9
Inserting
3 lt 7
7
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
60
2 12 1 4 11 6 5 8 10
9 lt 2
Sorted Sublist
Unsorted Sublist
Working Sublist
9
Inserting
7 lt 2
7
3 lt 2
3
2
982017
11
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
61
2 3 7 9 12 1 4 11 6 5 8 10
9 lt 12
Sorted Sublist
Unsorted Sublist
Working Sublist
Inserting 12
1
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
62
4 11 6 5 8 10
12 lt 1
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
9 lt 1
9
7 lt 1
7
3 lt 1
3
2 lt 1
2
1
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
63
1 2 3 4 11 6 5 8 10
12 lt 4
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
9 lt 4
9
7 lt 4
7
3 lt 4
4
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
64
1 2 3 4 7 9 11 6 5 8 10
12 lt 11
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting 11
9 lt 11
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
65
1 2 3 4 6 5 8 10
12 lt 6
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
11 lt 6 9 lt 6 7 lt 6 4 lt 6
1197
6
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
66
1 2 3 4 5 8 10
12 lt 5
Sorted Sublist
Unsorted Sublist
Working Sublist
12
11 lt 5 9 lt 5 7 lt 5 6 lt 5 4 lt 5
Inserting
11976
5
982017
12
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
67
1 2 3 4 5 6 7 8 10
12 lt 8
Sorted Sublist
Unsorted Sublist
Working Sublist
12
11 lt 8 9 lt 8 7 lt 8
Inserting
119
8
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
68
1 2 3 4 5 6 7 8 9 10
12 lt 10
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
11 lt 10 9 lt 10
11
10
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
69
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Insert 2
Insert 3
Insert 4
Insert 5
Insert 6
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
11
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
61
2 3 7 9 12 1 4 11 6 5 8 10
9 lt 12
Sorted Sublist
Unsorted Sublist
Working Sublist
Inserting 12
1
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
62
4 11 6 5 8 10
12 lt 1
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
9 lt 1
9
7 lt 1
7
3 lt 1
3
2 lt 1
2
1
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
63
1 2 3 4 11 6 5 8 10
12 lt 4
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
9 lt 4
9
7 lt 4
7
3 lt 4
4
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
64
1 2 3 4 7 9 11 6 5 8 10
12 lt 11
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting 11
9 lt 11
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
65
1 2 3 4 6 5 8 10
12 lt 6
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
11 lt 6 9 lt 6 7 lt 6 4 lt 6
1197
6
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
66
1 2 3 4 5 8 10
12 lt 5
Sorted Sublist
Unsorted Sublist
Working Sublist
12
11 lt 5 9 lt 5 7 lt 5 6 lt 5 4 lt 5
Inserting
11976
5
982017
12
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
67
1 2 3 4 5 6 7 8 10
12 lt 8
Sorted Sublist
Unsorted Sublist
Working Sublist
12
11 lt 8 9 lt 8 7 lt 8
Inserting
119
8
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
68
1 2 3 4 5 6 7 8 9 10
12 lt 10
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
11 lt 10 9 lt 10
11
10
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
69
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Insert 2
Insert 3
Insert 4
Insert 5
Insert 6
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
12
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
67
1 2 3 4 5 6 7 8 10
12 lt 8
Sorted Sublist
Unsorted Sublist
Working Sublist
12
11 lt 8 9 lt 8 7 lt 8
Inserting
119
8
Elementary Sorting Algorithms(Insertion Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
68
1 2 3 4 5 6 7 8 9 10
12 lt 10
Sorted Sublist
Unsorted Sublist
Working Sublist
12
Inserting
11 lt 10 9 lt 10
11
10
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
69
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Insert 2
Insert 3
Insert 4
Insert 5
Insert 6
Elementary Sorting Algorithms(Insertion Sort Analysis for Best Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
14
Elementary Sorting Algorithms(Bubble Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
79
3 7 9 2 12 1 4 11 6 5 8 10
9 gt 2
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Bubble Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
80
3 7 2 9 12 1 4 11 6 5 8 10
9 gt 12
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Bubble Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
81
3 7 2 9 12 1 4 11 6 5 8 10
12 gt 1
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Bubble Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
82
3 7 2 9 1 12 4 11 6 5 8 10
12 gt 4
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Bubble Sort)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
83
3 7 2 9 1 4 12 11 6 5 8 10
12 gt 11
Sorted Sublist
Unsorted Sublist
Elementary Sorting Algorithms(Bubble Sort)
84
3 7 2 9 1 4 11 12 6 5 8 10
12 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
15
Elementary Sorting Algorithms(Bubble Sort)
85
3 7 2 9 1 4 11 6 12 5 8 10
12 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
86
3 7 2 9 1 4 11 6 5 12 8 10
12 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
87
3 7 2 9 1 4 11 6 5 8 12 10
12 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
88
3 7 2 9 1 4 11 6 5 8 10 12
3 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
89
3 7 2 9 1 4 11 6 5 8 10 12
7 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
90
3 2 7 9 1 4 11 6 5 8 10 12
7 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
16
Elementary Sorting Algorithms(Bubble Sort)
91
3 2 7 9 1 4 11 6 5 8 10 12
9 gt 1
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
92
3 2 7 1 9 4 11 6 5 8 10 12
9 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
93
3 2 7 1 4 9 11 6 5 8 10 12
9 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
94
3 2 7 1 4 9 11 6 5 8 10 12
11 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
95
3 2 7 1 4 9 6 11 5 8 10 12
11 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
96
3 2 7 1 4 9 6 5 11 8 10 12
11 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
17
Elementary Sorting Algorithms(Bubble Sort)
97
3 2 7 1 4 9 6 5 8 11 10 12
11 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
98
3 2 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 2
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
99
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
100
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
101
2 3 1 7 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
102
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
18
Elementary Sorting Algorithms(Bubble Sort)
103
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
104
2 3 1 4 7 6 9 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
105
2 3 1 4 7 6 5 9 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
106
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 10
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
107
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 3
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
108
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
15
Elementary Sorting Algorithms(Bubble Sort)
85
3 7 2 9 1 4 11 6 12 5 8 10
12 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
86
3 7 2 9 1 4 11 6 5 12 8 10
12 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
87
3 7 2 9 1 4 11 6 5 8 12 10
12 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
88
3 7 2 9 1 4 11 6 5 8 10 12
3 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
89
3 7 2 9 1 4 11 6 5 8 10 12
7 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
90
3 2 7 9 1 4 11 6 5 8 10 12
7 gt 9
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
16
Elementary Sorting Algorithms(Bubble Sort)
91
3 2 7 9 1 4 11 6 5 8 10 12
9 gt 1
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
92
3 2 7 1 9 4 11 6 5 8 10 12
9 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
93
3 2 7 1 4 9 11 6 5 8 10 12
9 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
94
3 2 7 1 4 9 11 6 5 8 10 12
11 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
95
3 2 7 1 4 9 6 11 5 8 10 12
11 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
96
3 2 7 1 4 9 6 5 11 8 10 12
11 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
17
Elementary Sorting Algorithms(Bubble Sort)
97
3 2 7 1 4 9 6 5 8 11 10 12
11 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
98
3 2 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 2
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
99
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
100
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
101
2 3 1 7 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
102
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
18
Elementary Sorting Algorithms(Bubble Sort)
103
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
104
2 3 1 4 7 6 9 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
105
2 3 1 4 7 6 5 9 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
106
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 10
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
107
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 3
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
108
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
16
Elementary Sorting Algorithms(Bubble Sort)
91
3 2 7 9 1 4 11 6 5 8 10 12
9 gt 1
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
92
3 2 7 1 9 4 11 6 5 8 10 12
9 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
93
3 2 7 1 4 9 11 6 5 8 10 12
9 gt 11
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
94
3 2 7 1 4 9 11 6 5 8 10 12
11 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
95
3 2 7 1 4 9 6 11 5 8 10 12
11 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
96
3 2 7 1 4 9 6 5 11 8 10 12
11 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
17
Elementary Sorting Algorithms(Bubble Sort)
97
3 2 7 1 4 9 6 5 8 11 10 12
11 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
98
3 2 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 2
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
99
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
100
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
101
2 3 1 7 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
102
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
18
Elementary Sorting Algorithms(Bubble Sort)
103
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
104
2 3 1 4 7 6 9 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
105
2 3 1 4 7 6 5 9 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
106
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 10
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
107
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 3
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
108
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
17
Elementary Sorting Algorithms(Bubble Sort)
97
3 2 7 1 4 9 6 5 8 11 10 12
11 gt 10
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
98
3 2 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 2
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
99
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
100
2 3 7 1 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
101
2 3 1 7 4 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
102
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
18
Elementary Sorting Algorithms(Bubble Sort)
103
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
104
2 3 1 4 7 6 9 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
105
2 3 1 4 7 6 5 9 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
106
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 10
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
107
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 3
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
108
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
18
Elementary Sorting Algorithms(Bubble Sort)
103
2 3 1 4 7 9 6 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
104
2 3 1 4 7 6 9 5 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
105
2 3 1 4 7 6 5 9 8 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
106
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
9 gt 10
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
107
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 3
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
108
2 3 1 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
19
Elementary Sorting Algorithms(Bubble Sort)
109
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
3 gt 4
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
110
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
4 gt 7
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
111
2 1 3 4 7 6 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 6
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
112
2 1 3 4 6 7 5 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 5
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
113
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
7 gt 8
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
114
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
8 gt 9
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
20
Elementary Sorting Algorithms(Bubble Sort)
115
2 1 3 4 6 5 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
2 gt 1
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
116
1 2 3 4 6 5 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
117
1 2 3 4 6 5 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
118
1 2 3 4 6 5 7 8 9 10 11 12
4 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
119
1 2 3 4 6 5 7 8 9 10 11 12
6 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
120
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
21
Elementary Sorting Algorithms(Bubble Sort)
121
1 2 3 4 5 6 7 8 9 10 11 12
7 gt 8
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
122
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
123
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
124
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
125
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
126
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
22
Elementary Sorting Algorithms(Bubble Sort)
127
1 2 3 4 5 6 7 8 9 10 11 12
6 gt 7
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
128
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
129
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
Do we need to keep going
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
130
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
131
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
132
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
23
Elementary Sorting Algorithms(Bubble Sort)
133
1 2 3 4 5 6 7 8 9 10 11 12
5 gt 6
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
134
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
135
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
136
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
137
1 2 3 4 5 6 7 8 9 10 11 12
4 gt 5
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
138
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
24
Elementary Sorting Algorithms(Bubble Sort)
139
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
140
1 2 3 4 5 6 7 8 9 10 11 12
3 gt 4
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
141
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
142
1 2 3 4 5 6 7 8 9 10 11 12
2 gt 3
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
143
1 2 3 4 5 6 7 8 9 10 11 12
1 gt 2
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort)
144
1 2 3 4 5 6 7 8 9 10 11 12
Sorted Sublist
Unsorted Sublist
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
[Sedgewick 1985]
gaps = (1 8 23 77 281 1073 4193 16577 hellip)
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
982017
25
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
For each iteration larger element move up (or smaller element move down)
145
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Best Case)
146
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Bubble up
Bubble up
Bubble up
Bubble up
Bubble up
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
For each iteration larger elements move up (or smaller elements move down)
147
1 BubbleSort(A)
2
3 for j = |A|-1 down to 0 do
4
5 for k=2 to j do
6
7 If A[k-1] gt A[k]
8 Swap (A[k-1] A[k])
9
10
11
119810120783119951
119810120784(119951 minus 120783)
119810120785119951(119951 minus 120783)
120784119810120786
119951(119951 minus 120783)
120784
COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Bubble Sort Analysis for Worst Case)
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2
=1198623
21198992 + 1198621 + 1198622 minus
1198623
2119899 minus 1198622 = Θ(1198992)
Worst Case
119879 119899 = 1198621119899 + 1198622 119899 minus 1 + 1198623119899(119899 minus 1)
2+ 1198624
119899(119899 minus 1)
2
= (1198623
2+
1198624
2)1198992 + 1198621 + 1198622 minus
1198623
2minus
1198624
2119899 minus 1198622 = Θ(1198992)
149COSC 320 - Fall 2017
Slide courtesy of Dr Sang-Eon Park
Elementary Sorting Algorithms(Shell Sort)
Shell sort is an extension of insertion sort that gains speed by facilitating exchanges of elements that are far apart
Shell sort begins with a specified decreasing sequence of gap sizes (that ends with 1) and an unsorted array For each gap size n the array is conceptually split into a group of n interleaved arrays
Insertion sort is called for each interleaved array
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)
The speedup provided by shell sort is dependent on the choice of gap sizes Naturally a great deal of research has been done to find good gap sequences For examplehellip
The running time of shell sort is O(n32) for the gap increments generated by the formula (3k ndash 1)2 (not to exceed size3)
[Pratt 1971]
gaps = (1 4 13 40 121 364 1093 3280 9841 hellip)
The running time of shell sort is O(n43) for the gap increments generated by the formula 4k + 32k-1 + 1 (prefixed w 1)