Download - 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II
![Page 1: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/1.jpg)
04.09.09 IT 60101: Lecture #17 1
Foundation of Computing Systems
Lecture 17
Sorting Algorithms II
![Page 2: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/2.jpg)
04.09.09 IT 60101: Lecture #17 2
Sorting by Exchange
• Interchange (exchange) pairs of elements that are out
of order until no more such pair exists. • Bubble sort
• Shell sort
• Quick sort
![Page 3: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/3.jpg)
04.09.09 IT 60101: Lecture #17 3
Sorting by Exchange: Bubble Sort
1
2
3
n
i
(i-1) elem ents are sortedand stored here
i-th largest elem entssinks and placed here
i-th outer loop
Sm aller elem entsbubble up in inner loop
1
2
3
n
n-1
![Page 4: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/4.jpg)
04.09.09 IT 60101: Lecture #17 4
Bubble Sort: Illustration
55
33
22
99
77
1
2
3
44
66
88
4
5
6
7
8
55
22
88
33
77
1
2
3
99
44
66
4
5
6
7
8
55
77
66
22
33
1
2
3
99
88
44
4
5
6
7
8
33
66
44
55
22
1
2
3
99
88
77
4
5
6
7
8
22
44
66
55
33
1
2
3
99
88
77
4
5
6
7
8
22
55
66
44
33
1
2
3
99
88
77
4
5
6
7
8
22
55
66
44
33
1
2
3
99
88
77
4
5
6
7
8
22
55
66
44
33
1
2
3
99
88
77
4
5
6
7
8
22
55
66
44
33
1
2
3
99
88
77
4
5
6
7
8
Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6 Pass 7Input list Output list
![Page 5: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/5.jpg)
04.09.09 IT 60101: Lecture #17 5
Complexity Analysis of Bubble Sort
• Case 1: The input list is already in sorted order
• Number of comparisons
• Number of movements
2
1)(
nnnC
M (n) = 0
![Page 6: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/6.jpg)
04.09.09 IT 60101: Lecture #17 6
Complexity Analysis of Bubble Sort
• Case 2: The input list is sorted but in reverse order
• Number of comparisons
• Number of movements
2
1)(
nnnC
2
1)(
nnnM
![Page 7: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/7.jpg)
04.09.09 IT 60101: Lecture #17 7
Complexity Analysis of Bubble Sort
• Case 3: Elements in the input list are in random order
Number of comparisons
Number of movements
2
1)(
nnnC
Let pj be the probability that the largest element is in the unsorted part is in j-th (1≤j≤n-i+1) location.
The average number of swaps in the i-th pass is
j
in
j
pjin
1
1
1
![Page 8: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/8.jpg)
04.09.09 IT 60101: Lecture #17 8
Complexity Analysis of Bubble Sort
• Case 3: Elements in the input list are in random order
Number of movements
121 inppp1
1
in
jinin
in
j
11
11
1
The average number of swaps in the i-th pass is
2
in
The average number of movements
1
1 2)(
n
i
innM
4
)1(
nn
![Page 9: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/9.jpg)
04.09.09 IT 60101: Lecture #17 9
Bubble Sort: Summary
2
)1()(
nnnC 0)( nM 0)( nS
2
)1()(
nnnC
2
)1()(
nnnM
0)( nS2
)1()(
nnnC
4
)1()(
nnnM
0)( nS
Case Comparisons Movement Memory Remark
Case 1
Input list is in sorted order
Case 2
Input list is sorted in reversed order
Case 3
Input list is in random order
2
)1()(
nncnT
)()( 2nnT
)1()( ncnnT
)()( 2nnT )1(4
3)( nnnT
)()( 2nnT
Run time, T(n) Complexity Remark
Best case
Worst case
Average case
![Page 10: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/10.jpg)
04.09.09 IT 60101: Lecture #17 10
Bubble Sort: Refinements
• Funnel sort
• Cocktail sort
96
54
63
41
25
1
2
3
16
78
39
4
5
6
7
8
25
63
39
54
41
1
2
3
96
16
78
4
5
6
7
8
25
39
63
54
41
1
2
3
96
78
16
4
5
6
7
8
25
54
16
39
41
1
2
3
96
78
63
4
5
6
7
8
25
16
54
41
39
1
2
3
96
78
63
4
5
6
7
8
25
41
54
16
39
1
2
3
96
78
63
4
5
6
7
8
25
41
54
39
16
1
2
3
96
78
63
4
5
6
7
8
16
41
54
39
25
1
2
3
96
78
63
4
5
6
7
8
22
55
66
44
33
1
2
3
99
88
77
4
5
6
7
8
Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6 Pass 7Input list Output list
![Page 11: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/11.jpg)
04.09.09 IT 60101: Lecture #17 11
Cocktail Sort
99
22
66
44
55
1
2
3
11
33
88
4
5
6
7
8
55
66
88
22
44
1
2
3
99
11
33
4
5
6
7
8
11
22
66
44
55
1
2
3
99
33
88
4
5
6
7
8
11
55
66
22
44
1
2
3
99
88
33
4
5
6
7
8
11
33
55
44
22
1
2
3
99
88
66
4
5
6
7
8
11
44
55
33
22
1
2
3
99
88
66
4
5
6
7
8
11
44
55
33
22
1
2
3
99
88
66
4
5
6
7
8
Pass 1 Pass 2 Pass 3 Pass 4 Pass 5 Pass 6Input lis t
![Page 12: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/12.jpg)
04.09.09 IT 60101: Lecture #17 12
Sorting by Exchange: Shell Sort
• Sorting methods based on comparison
– Comparisons and hence movements of data take place between adjacent entries only
– This leads to a number of redundant comparisons and data movements
– A mechanism should be followed with which the comparisons can take in long leaps instead of short
• Donald L. Shell (1959)
– Use increments: 121 ,...,,, hhhh ttt
![Page 13: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/13.jpg)
04.09.09 IT 60101: Lecture #17 13
Shell Sort: Illustration
21 5645247332915938671685944372 60
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
7
6
5
4
3
2
P ass 1 w ith h = 7
21 5667248594916038451673324359 72
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
5
4
3
2
P ass 2 w ith h = 5
This
is th
e lis
t afte
r pas
s 1
![Page 14: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/14.jpg)
04.09.09 IT 60101: Lecture #17 14
Shell Sort: Illustration
21 5667248594916038451673324359 72
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
5
4
3
2
P ass 2 w ith h = 5
16 9167438572736038592156322445 94
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
3
2
This
is th
e lis
t afte
r pas
s 2
![Page 15: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/15.jpg)
04.09.09 IT 60101: Lecture #17 15
Shell Sort: Illustration
16 9167438572736038592156322445 94
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
3
2
P ass 3 w ith h = 3
P ass 4 w ith h = 1
This
is th
e lis
t afte
r pas
s 3
16 9172738567596056432445322138 94
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1
16 9185737267605956454338322421 94
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
This
is th
e lis
t afte
rpa
ss 4
O utpu t lis t
![Page 16: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/16.jpg)
04.09.09 IT 60101: Lecture #17 16
Issues in Shell Sort
• Algorithm to be used to sort subsequences in shell sort
– Straight insertion sort
– Shell sort is better than the insertion sort
• Lower number of passes than n number of passes in insertion sort
• Deciding the values of increments
• Several choices have been made
![Page 17: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/17.jpg)
04.09.09 IT 60101: Lecture #17 17
Increments in Shell Sort
1: Only two increments h and 1 • h is approximately =
• Time complexity (average) =
2: ht = 2t -1 for 1≤ t ≤ log2n, where n is the size of the input list
• Increments: 2t -1, …, 15, 7, 3, 1
• Time complexity : (worst) (average)
3732.1 n
O(n5/3)
)( 2/3n )(~ 4/5n
![Page 18: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/18.jpg)
04.09.09 IT 60101: Lecture #17 18
Increments in Shell Sort
3: ht = (3t -1)/2 for 1≤ t ≤ l Where l is chosen as the smallest integer such that , n being the size of the input list
• Worst case time complexity is O(n3/2 )
nhl 13
Many more……….
![Page 19: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/19.jpg)
04.09.09 IT 60101: Lecture #17 19
Complexity Analysis of Shell Sort
rncnC .)(
21 r
0)( nM
0)( nSrncnC .)( 2
)1()(
nnnM
0)( nSrncnC .)( 4
)1()(
nnnM
0)( nS
Case Comparisons Movement Memory Remark
Case 1Input list is in sorted order
Case 2Input list is sorted in reverse order
Case 3Input list is in random order
rncnT .)( )()( rnnT
2
)1(.)(
nnncnT r
)()( 2nnT 4
)1(.)(
nnncnT r
21 r
)()( 2nnT
Run time, T(n) Complexity Remark
Best case
Worst case
Average case
![Page 20: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/20.jpg)
04.09.09 IT 60101: Lecture #17 20
Sorting by Exchange: Quick Sort
• Divide-and-Conquer
Problem
Solution
P2P1 P3 Pn
D ivide
C onquer
C om b ine
![Page 21: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/21.jpg)
04.09.09 IT 60101: Lecture #17 21
Divide-and-Conquer in Quick Sort1 2 n
Partition
1 2 n
R ight sub lis t
pp-1 p+1
Left sub lis t
1 2 np-1 p+1
Sort le ft sub lis t recurs ivley Sort right sub lis t recurs ivley
R ecurs ion R ecurs ion
![Page 22: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/22.jpg)
04.09.09 IT 60101: Lecture #17 22
Partition Method in Quick Sort
l r
loc P ivot e lem ent
l r
loc P ivot e lem ent
Scan until A [loc] < A [r] and loc < r r
l
loc
In terchange if A [loc] >= A [r] and current scan is s topped r
Pivot e lem ent
![Page 23: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/23.jpg)
04.09.09 IT 60101: Lecture #17 23
Partition Method in Quick Sort
l
locP ivot e lem ent
Scan until A [loc] > A [r] and loc < l r
l
loc
In terchange if A [loc] =< A [l and current scan is s topped
r
l
Pivot e lem ent
l
locP ivot e lem ent
Scan until A [loc] > A [r] and loc < l r
l
loc
In terchange if A [loc] =< A [l and current scan is s topped
r
l
Pivot e lem ent
![Page 24: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/24.jpg)
04.09.09 IT 60101: Lecture #17 24
Partition Method: Illustration
55 3377661144992288
loc
left right
scan from right to left
(a) A t the begining of the partition
33 5577661144992288
loc
left right
scan from left to right
(b) A fter the scaning from right to left while the pivot isat left. Next, it begins the scanning from left to right
![Page 25: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/25.jpg)
04.09.09 IT 60101: Lecture #17 25
Partition Method: Illustration
33 5577661144992288
loc
left right
scan from left to right
(b) A fter the scaning from right to left while the pivot isat left. Next, it begins the scanning from left to right
33 8877661144992255
loc
left right
scan from right to left
(c) A fter the scaning from left to right while the pivot isat right. Next, it begins the scanning from right to left
![Page 26: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/26.jpg)
04.09.09 IT 60101: Lecture #17 26
Partition Method: Illustration
33 8877661144992255
loc
left right
scan from right to left
(c) A fter the scaning from left to right while the pivot isat right. Next, it begins the scanning from right to left
33 8877665544992211
loc
left right
scan from left to right
(d) A fter the scaning from right to left while the pivot isat left. Next, it begins the scanning from left to right
![Page 27: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/27.jpg)
04.09.09 IT 60101: Lecture #17 27
Partition Method: Illustration
33 8877665544992211
loc
left right
scan from left to right
(d) A fter the scaning from right to left while the pivot isat left. Next, it begins the scanning from left to right
33 8877669944552211
loc
left right
scan from right to left
(e) A fter the scaning from left to right while the pivot isat right. Next, it begins the scanning from right to left
![Page 28: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/28.jpg)
04.09.09 IT 60101: Lecture #17 28
Partition Method: Illustration
33 8877669944552211
loc
left right
scan from right to left
(e) A fter the scaning from left to right while the pivot isat right. Next, it begins the scanning from right to left
33 8877669955442211
loc
leftright
(f) A fter the scaning from right to left while the pivot isat left. left < right condition violates. Partition is done.
Left sub list. A ll elem ents areless than the pivot elem ent, 55
Right sub list. A ll elem ents aregreater than the pivot elem ent, 55
![Page 29: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/29.jpg)
04.09.09 IT 60101: Lecture #17 29
Quick Sort: Illustration55 3377661144992288
55
44221133 77 886699
33 99
4422 11
22
66 7788
88
11 77 66
77
66
![Page 30: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/30.jpg)
04.09.09 IT 60101: Lecture #17 30
Complexity Analysis of Quick Sort
• Memory requirementSize of the stack =
• Number of comparisons Let, T(n) represents total time to sort n elements and P(n) represents the time for perform a partition of a list of n elements
1log)( 2 nnS
T(n) = P(n) +T(nl) +T(nr) with T(1) = T(0) = 0
where, nl = number of elements in the left sub list nr = number of elements in the right sub list and 0 ≤ nl, nr < n
![Page 31: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/31.jpg)
04.09.09 IT 60101: Lecture #17 31
Complexity Analysis of Quick Sort
• Case 1: Elements in the list are in ascending order Number of comparisons
Number of movements
C(n) = n-1 + C(n-1), with C(1) = C(0) = 0
12)3()2()1()( nnnnC
2
)1(
nn
M(n) = 0
![Page 32: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/32.jpg)
04.09.09 IT 60101: Lecture #17 32
Complexity Analysis of Quick Sort
• Case 2: Elements in the list are in reverse order Number of comparisons
Number of movements
C(n) = n-1 + C(n-1), with C(1) = C(0) = 0
12)3()2()1()( nnnnC
2
)1(
nn
even is if ,
2
odd is if ,2
1
)(n
n
nn
nM
![Page 33: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/33.jpg)
04.09.09 IT 60101: Lecture #17 33
Complexity Analysis of Quick Sort
• Case 3: Elements in the list are in random order i-th location
(i-1) (n-i)
)1()1(1
)1()(1
1
nCiCn
nnCn
i
Number of comparisons
with C(1) = C(0) = 0
1
1
)(2
)1()(n
i
iCn
nnC
nnnnC e 4577.0log)1(2)(
![Page 34: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/34.jpg)
04.09.09 IT 60101: Lecture #17 34
Complexity Analysis of Quick Sort
• Case 3: Elements in the list are in random order
Number of Movements
n
i
inMiMin
nM1
)()1(11
)(
1
1
)(2
2
1)(
n
i
iMn
nnM
nnnnM e 4577.0log)1(2)(
![Page 35: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/35.jpg)
04.09.09 IT 60101: Lecture #17 35
Complexity Analysis: Summary
2
)1()(
nnnC 0)( nM
1)( nS2
)1()(
nnnC
2)(
nnM
1)( nS
nnnnC e 4577.0log)1(2)( nnnnM e 4577.0log)1(2)( 1log)( 2 nnS
Case Comparisons Movement Memory Remark
Case 1Input list is in sorted order
Case 2Input list is sorted in reversed order
Case 3Input list is in random order
2
)1()(
nncnT
)()( 2nnT
22
)1()(
nnncnT )()( 2nnT
cnnncnT e 8577.0log)1(4)(
1log2)( 2 nnncnT nnnT 2log)(
Run time, T(n) Complexity Remark
Worst case
Worst case
Best/average case
![Page 36: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/36.jpg)
04.09.09 IT 60101: Lecture #17 36
Variations in Quick Sort
• Randomized quick sort
• Random sampling quick sort
• Singleton’s quick sort
• Multi-partition quick sort
• Leftist quick sort
• Lomuto’s quick sort
![Page 37: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/37.jpg)
04.09.09 IT 60101: Lecture #17 37
Lomuto’s quick sort
right part
l r
w in d ow
p tr
(a ) In itia l s tep
U n exam in ed
right part
l r
w in d ow
p tr
(b ) In term ed ia te s tep
elem en t < p ivo t
p ivo t e lem en t
p ivo t e lem en t
m iddle partleft part
elem en t > = p ivo t u n exam in ed
right part
l r
w in d ow
loc
(c ) F in a l s tep
elem en t < p ivo t
p ivo t e lem en t
left part
elem en t > = p ivo t
![Page 38: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/38.jpg)
04.09.09 IT 60101: Lecture #17 38
Summary: Sorting by Exchange
)()( 2nnT
)()( 2nnT )()( 2nnT
)()( 3/5nnT )(~ 4/5n
)()( 2nnT
)()( 3/5nnT )(~ 4/5n
)log()( 2 nnnT
)()( 2nnT
)log()( 2 nnnT
Algorithm Best case Worst case Average case
Bubble sort
Shell sort
Quick sort
![Page 39: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/39.jpg)
04.09.09 IT 60101: Lecture #17 39
Summary: Sorting by Exchange
Ascending order
Input Size
Tim
e (
ms)
0
2040
60
80100
120
140
160180
200
Bubb le sort
Q u ick sort
She ll sort
asc10 asc100 asc500 asc1K asc5K asc10K
![Page 40: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/40.jpg)
04.09.09 IT 60101: Lecture #17 40
Summary: Sorting by Exchange
0
100
200
300
400
500
600
700
Input Size
Tim
e (m
s)
Bubb le sort
Q u ick sort
She ll sort
Descending order
dsc10 dsc100 dsc500 dsc1K dsc5K dsc10K
![Page 41: 04.09.09IT 60101: Lecture #171 Foundation of Computing Systems Lecture 17 Sorting Algorithms II](https://reader035.vdocuments.us/reader035/viewer/2022070401/56649f1e5503460f94c362cb/html5/thumbnails/41.jpg)
04.09.09 IT 60101: Lecture #17 41
Summary: Sorting by Exchange
0
100
200
300
400
500
600
700Random order
Input Size
Tim
e (m
s)
B ubb le sort
Q u ick sort
S he ll so rt
ran10 ran100 ran500 ran1K ran5K ran10K