You are on page 1of 29

Sorting Techniques

Tazeen Muzammil
MSSE
Sorting
Refers to the operation of arranging the data
in some given order, such as increasing or
decreasing.
For Example let A be a list of n numbers then:
A[1]<A[2]<A[3]<..A[n]
fhgfgh
Sorting Techniques
Some of the sorting techniques used to
arrange data are as follows :
Bubble sort
Selection sort
Insertion sort
Merge sort
Quick sort
Bubble Sort
The general idea of the bubble sort is that each
element is compared to all the elements in the data.
The bubble sort algorithm requires N-1 passes to sort N
items of data.
The bubble sort is notoriously slow, but it is
conceptually the simplest of the sorting algorithms.
1. The result of the first pass is that the largest item is in
the last location of the array.
2. The result of the second pass is that the second largest
item is in the second last location of the array.
3. etc.
4. After N passes, the entire array is sorted.
Bubble Sort
The operation in each pass is as follows:
1. First, the values in the first two locations are compared. If
necessary the values are exchanged, so that the largest
one is last.
2. Then, the values in the second and third locations are
compared. If necessary the values are exchanged, so that
again the largest one is last.
3. This process repeats to the end of the array.
4. In effect, the largest item bubbles its way towards the
top. It keeps on going until either it reaches the top and
the pass ends.
If a complete pass is made without any exchanges
being made, the data must already be sorted.
Example
Suppose the following numbers are stored in an
array A:
32,51,27,85,66,23,13,57
Pass 1:
a) Compare A[1] and A[2]:Since 32<51 the list is not altered.
b) Compare A[2] and A[3]: Since 51>27 interchange 51 and 27.
32,27,51,85,66,23,13,57
c) Compare A[3] and A[4]:Since 51<85 the list is not altered.
d) Compare A[4] and A[5]: Since 85>66 interchange 85 and 66.
32,27,51,66,85,23,13,57
e) Compare A[5] and A[6]: Since 85>23 interchange 85 and 23.
32,27,51,66,23,85,13,57
f) Compare A[6] and A[7]: Since 85>13 interchange 85 and 13.
g) 32,27,51,66,23,13,85,57
h) Compare A[7] and A[8]: Since 85>57 interchange 85 and 57.
i) 32,27,51,66,23,13,57,85
Bubble Sort Algorithm
DATA is an array with N elements. This algorithm sorts
the elements in DATA.
BUBBLE(DATA,N)
1. Repeat Step 2 and 3 for K=1 to N-1
2. Set PTR=1[Initialize pass pointer]
3. Repeat while PTR< N-K[Executes pass]
a) If DATA[PTR] > DATA[PTR+1] then
Interchange DATA[PTR] and DATA[PTR+1]
[End of If structure]
b) Set PTR = PTR +1
[End of inner loop]
[End of Setp 1 outer loop]
4. Exit
Complexity Bubble Sort
Worst Case:
The worst case occurs when we have to search
through the entire array of data and the item does
not appear in data. In this case the algorithm
requires f(n) = n+1 comparisons.
Average Case:
The average number of comparisons required to
find the location item is approximately equal to
half number of elements in the array that is :
f(n) = n+1/2 comparisons.
Selection Sort
The general idea of the selection sort is that
for each slot, find the element that belongs
there.
The selection sort improves on the bubble sort
by reducing the number of swaps.
The number of comparisons remains the same
that is to sort N items you make N-1 passes
through them.
Selection Sort
The operation in each pass is as follows:
1. First find the smallest element in the list and put it in
the first position.
2. On the second pass you scan through just the first N-
1 entries. Then find the second smallest element in
the list and put it in the second position.
3. This process is repeated, with one item being placed
in its correct location each time.
4. After N-1 passes, the entire collection of data is
sorted.
Example
Suppose the following numbers are stored in an
array A:
77,33,44,11,88,22,66,55

Pass 1: 77,33,44,11,88,22,66,55
Pass 2: 11,33,44,77,88,22,66,55
Pass 3: 11,22,44,77,88,33,66,55
Pass 4: 11,22,33,77,88,44,66,55
Pass 5: 11,22,33,44,88,77,66,55
Pass 6: 11,22,33,44,55,77,66,88
Pass 7: 11,22,33,44,55,66,77,88
Selection Sort Algorithm
This procedure finds the location LOC of the
smallest element.
MIN (A,K, N,LOC)
1. [Initialize pointer]Set MIN=A[K] and LOC=K
2. Repeat for J=K+1 ..N
If MIN>A[J] then
Set MIN= A[J] LOC= A[J] and LOC=J
End of loop
3. Return
Selection Sort Algorithm
This algorithm sorts the array A with N
elements.
SELECTION (A,N)
1. Repeat Step 2and 3 for K=1 ..N-1
2. Call MIN(A,K,N,LOC)
3. [Interchange A[K] and A[LOC]
Set TEMP=A[K] , A[K]= A[LOC] and A[LOC] =TEMP
4. [End of Step 1 loop]
5. Exit
Insertion Sort
The general idea of the insertion sort method
is that for each element, find the slot where it
belongs.
This sorting algorithm is frequently used when
N is small.
Suppose A is an array with N elements.
The insertion sort scans A from A[1] to A[N]
inserting each element A[k] into its proper
position
Insertion Sort
The operation in each pass is as follows:
1. A[1 ] by itself is sorted.
2. A[2] is inserted either before A[1] or after A[1]
so that A[1] and A[2] are sorted.
3. A[N] is inserted into its proper place in
A[1],A[2]A[N-1] so that A[1],A[2]A[N] is
sorted.
Example
Suppose the following numbers are stored in an array
A:
77,33,44,11,88,22,66,55
Pass 1:77,33,44,11,88,22,66,55
Pass 2:77,33,44,11,88,22,66,55
Pass 3:33,77,44,11,88,22,66,55
Pass 4:33,44,77,11,88,22,66,55
Pass 5:11,33,44,77,88,22,66,55
Pass 6:11,22,33,44,77,88,66,55
Pass 7:11,22,33,44,66,77,88,55
Pass 8:11,22,33,44,55,66,77,88
Insertion Sort Algorithm
This algorithm sorts the array A with N elements.
(Insertion Sort) INSERTION(A,N)
1. Set A[0]:=0.
2. Repeat Steps 3 to 5 for K = 2, 3,,N:
3. Set TEMP := A[K] and PTR:= K 1
4. Repeat while TEMP <A[PTR]:
(a) Set A[PTR + 1] :=A[PTR].[moves elements forward.]
(b) Set PTR := PTR 1
[End of loop.
5. Set A[PTR + 1]:=TEMP.{Inserts element in proper place.]
[End of Step 2 loop.]
6. Return.
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H I auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H I L auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H I L M auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H I L M O auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
Repeat until done.
smallest smallest

A G L O R H I M S T

A G H I L M O R auxiliary array
Merging
Merge.
Keep track of smallest element in each sorted half.
Insert smallest of two elements into auxiliary array.
first half
Repeat until done.exhausted smallest

A G L O R H I M S T

A G H I L M O R S auxiliary array
Mergesort
Mergesort (divide-and-conquer)
Divide array into two halves.

A L G O R I T H M S

A L G O R I T H M S divide
Mergesort
Mergesort (divide-and-conquer)
Divide array into two halves.
Recursively sort each half.

A L G O R I T H M S

A L G O R I T H M S divide

A G L O R H I M S T sort
Mergesort
Mergesort (divide-and-conquer)
Divide array into two halves.
Recursively sort each half.
Merge two halves to make sorted whole.

A L G O R I T H M S

A L G O R I T H M S divide

A G L O R H I M S T sort

A G H I L M O R S T merge

You might also like