Professional Documents
Culture Documents
IT4002 LS Unit-5
IT4002 LS Unit-5
Unit 5: Sorting
1
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Sorting
2
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.0.
Introduction
3
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.0. Introduction to Sorting
▪ Sorting is known as a fundamental operation in computer science.
▪ There are other several types of sorting, done internally and externally.
✓ When a set of data to be sorted in small enough, then the entire sorting
can be performed in a computer internal storage i.e. in primary memory,
it is known as internal sort.
4
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.0. Introduction to Sorting (Conti…)
✓ And when a large set of data to be sorted, it is stored in low speed
computer’s external memory like hard disk, magnetic tape, etc., then it is
known as external sort.
6
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
15 6 13 22 3 52 60
Step:1
15 6 13 22 3 52 60
6 15 13 22 3 52 60
Step:2
6 15 13 22 3 52 60
6 13 15 22 3 52 60
Step:3
6 13 15 22 3 52 60
6 13 15 22 3 52 60
7
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
9
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
11
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Output
3 6 12 15 22 52 60
12
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.1.1. Bubble Sort (Conti…)
▪ Algorithm:
Steps:
1. For i=1 to n-1 do
2. For j=1 to n-1 do
3. If (a[j] > a[j+1])
4. swap(a[j], a[j+1]) // Swap pair wise element
5. EndIf
6. EndFor
7. EndFor
8. Stop
15 6 13 22 3 52 60
15
6 15
6 13 15
6 13 15 22
3 6 13 15 22
3 6 13 15 22 52
3 6 13 15 22 52 60
14
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.1.2. Insertion Sort (Conti…)
▪ Algorithm:
Steps:
1. For i=1 to n do
2. KEY = a[i]
3. POSITION = i
4. While (POSITION > 1) and (a[POSITION – 1] > KEY) do
5. a[POSITION] = a[POSITION–1]
6. POSITION = POSITION–1
7. a[POSITION] = KEY
8. EndWhile
9. EndFor
16
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
15 6 13 22 3 52 2
2 6 13 22 3 52 15
2 3 13 22 6 52 15
2 3 6 22 13 52 15
17
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
2 3 6 13 22 52 15
2 3 6 13 15 52 22
2 3 6 13 15 22 52
Output
2 3 6 13 15 22 52
18
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.1.3. Selection Sort (Conti…)
▪ Algorithm:
Steps:
selection_sort(i,n)
1. For i=1 to n-1 do
2. min_index = find_min(i,n)
3. swap(a[i], a[min_index])
4. EndFor
find_min(i,n)
5. min_index = i
6. For j=i+1 to n do
7. If(a[j] < a[min_index])
8. min_index = j
9. EndIf
10. EndFor
11. return(min_index)
12. Stop 19
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.1.3. Selection Sort (Conti…)
▪ The time complexity of find_min() is O(n).
20
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Class Work
▪ Sort the following data using bubble sort algorithm:
25, 37, 52, 38, 12, 86, 92
21
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.
Efficient Sorting Algorithm
22
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.1. Shell Sort
▪ Shell sort is a highly efficient sorting algorithm and is based on
insertion sort algorithm.
23
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Pass: 1 24 37 46 11 85 47 33 66
24 85
24 37 85 47
24 37 33 85 47 46
24 37 33 11 85 47 46 66
24
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Pass: 2 24 37 33 11 85 47 46 66
24 33 46 85
11 37 47 66
24 11 33 37 46 47 85 66
25
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Pass: 3 24 11 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 85 66
11 24 33 37 46 47 66 85
26
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Class Work
▪ Sort the following data using shell sort algorithm:
10, 8, 6, 20, 4, 3, 22, 1, 0, 15, 16
27
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.2. Quick Sort
▪ QuickSort is a Divide and Conquer algorithm.
28
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
34 26 1 45 18 78 12 89 27
i j
i <= pivot 1 <= 34 ✓ i++
34 26 1 45 18 78 12 89 27
i j
i <= pivot 45 <= 34 STOP and 27>34 STOP Swap(i , j)
34 26 1 27 18 78 12 89 45
i j 29
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
34 26 1 27 18 78 12 89 45
i j
i <= pivot 18 <= 34 ✓ i++
34 26 1 27 18 78 12 89 45
i j
i <= pivot 78 <= 34 STOP and 45>34 ✓ J--
34 26 1 27 18 78 12 89 45
i j
30
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
34 26 1 27 18
78 12 89 45
i j
i <= pivot 78 <= 34 STOP and 12>34 STOP Swap(i , j)
34 26 1 27 18 12 78 89 45
i j
12 26 1 27 18 34 78 89 45
31
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
32
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
34
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.3. Merge Sort
▪ Merging or organizing is a process by which two ordered lists of
elements are combined or merged into a single ordered list.
35
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
34 26 1 45 18 78 12
34 26 1 45 18 78 12
34 26 1 45 18 78 12
26 34 1 45 18 78 12
36
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
1 26 34 45 12 18 78
1 12 18 26 34 45 78
37
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Class Work
▪ Consider the following data and perform the quick sort algorithm:
5, 1, 26, 15, 76, 34, 15
38
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.4. Radix Sort
▪ The radix sort is a method of sorting which precedes any digital
computer.
39
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
▪ For example:
387 690 234 435 567 123 441
41
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Pass 1 0 690
1 441
2
3 123
4 234
5 435
6
7 387 567
8
9
2 123
3 234 435
4 441
5
6 567
7
8 387
9 690
123 234 435 441 567 387 690 43
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
567
690 441 123 234 435 387
0 1 2 3 4 5 6 7 8 9
{ 690, 441, 123, 234, 435, 387, 567 }
Pass 2
435
123 234 441 567 387 690
0 1 2 3 4 5 6 7 8 9
{ 123, 234, 435, 441, 567, 387, 690 }
Pass 3
441
123 234 387 435 567 690
0 1 2 3 4 5 6 7 8 9
{ 123, 234, 387, 435, 441, 567, 690 }
45
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.4. Radix Sort (Conti…)
▪ During the implementation of radix sort procedure in the computer, it
is convenient to make use of linked list for the representation of bins.
▪ Each of the headed linked lists representing the bins they could be
implemented as a linked queue with two pointers front and rear, each
pointing to the first and last node of the single linked list respectively.
▪ At the end of each pass, the elements from each list could be appended
to the output list by undertaking deletions in each of the linear queues
representing the bins until they are empty.
46
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Linked List implementation of Radix Sort - Bucket Sort Demonstration
{ 690, 441, 123, 234, 435, 387, 567 } { 123, 234, 435, 441, 567, 387, 690 }
47
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Linked List implementation of Radix Sort - Bucket Sort Demonstration
1 123 NULL
2 234 NULL
3 387 NULL
5 567 NULL
6 690 NULL
7 NULL
8 NULL
9 NULL
49
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.5. Heap Sort
▪ Heap sort is performed on the heap data structure.
▪ For min-heap the root element is minimum and for max-heap the root
is maximum.
51
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Create Heap Demonstration
15 35 55
15
35 15 55 15 35
75
55 75 75
75 35 55 35 95
55
15 15 05 95 15 05 35
52
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Create Heap Demonstration
55 85
55 75
15 05 35 75
15 05 35 85
65
95
55 85
65 05 35 75
15
53
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Create Heap Demonstration
95
65 85
55 05 35 75 95
15 45 25 65 85
55 25 35 75
15 45 05
65 85 65 85
55 25 35 75 55 25 35 75
15 45 05 15 45 95
85
85
65 05 65 75
55 25 35 75 55 25 35 05
15 45 95 15 45 95
55
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
65 75 65 75
55 25 35 05 55 25 35 05
15 45 95 15 85 95
75
65 45
55 25 35 05
15 85 95
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
65 45 15 45
55 25 35 05 55 25 35 05
75 85 95 75 85 95
65
55 45
15 25 35 05
75 85 95
57
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
55 45 05 45
15 25 35 65 15 25 35 65
75 85 95 75 85 95
55 35
25 45 25 45
15 05 35 65 15 05 55 65
75 85 95 75 85 95
58
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
25 35 25 35
15 05 55 65 15 45 55 65
75 85 95 75 85 95
35 15
25 05 25 05
15 45 55 65 35 45 55 65
75 85 95 75 85 95
59
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
15 05 15 25
35 45 55 65 35 45 55 65
75 85 95 75 85 95
15
05
05 25
15 25
35 45 55 65 35 45 55 65
75 85 95
75 85 95 60
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Remove Max and Rebuild Heap Demonstration
05
15 25
35 45 55 65
75 85 95
61
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Home Work
▪ Trace the following list of elements to construct the heap tree:
12, 45, 21, 67, 34
62
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.6. Counting Sort
▪ Counting sort is a sorting algorithm that sorts the elements of an array
by counting the number of occurrences of each unique element in the
array.
63
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
CE: 5.2.6. Counting Sort (Conti…)
▪ Thus,
✓ Let the element be i and
✓ then increase the value in the location C[i].
✓ Next, for all i, 0 ≤ i ≤ k, summing C[i] = C[i – 1] + C[i], we get the ‘index’, that
is the number of elements less then or equal to i.
✓ The values in the array C, thus obtained give the indices (final position) of all
elements in the sorted list.
64
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Step:02 C[i] 0 1 4 6 7 7 7 7 8
0 1 2 3 4 5 6 7 8
65
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Demonstration
Step:02 C[i] 0 1 4 6 7 7 7 7 8
0 1 2 3 4 5 6 7 8
1-1=0 4-1=3 6-1=5 7-1=6 8-1=7 Place each
3-1=2 5-1=4 element of a[i] in
2-1=1 output array
C[ C[i] – 1 ]
66
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
Home Work
▪ Trace the following list of elements to construct the heap tree:
12, 45, 21, 67, 34
67
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY
68
BHAVIK SARANG | MSC IT | UKA TARSADIA UNIVERSITY