You are on page 1of 7

Algorithm Date 01-10-2004

Friday
A= array forDay
sorting
Faheem Janjua
B= is sorted array

Counting Sort

K= Max No
There is limitation in this sorting that this sorting algorithm only sort integer values and
C= auxiliary array use for only functioning without output.
you must aware of Max & Min value in the array. Before selecting counting sort we use
Max & Min algorithm in this sorting.
Algorithm for Min
Min (A) :
{
min=A[1]
for i=2 to n
if min > A[i] then
min = A[i]
return min

Algorithm for Max


Max (A) :
{
max=A[1]
for i=2 to n
if max < A[i] then
max = A[i]
return max

Counting Sort (A, B, K)


1. for i=o to K
2. do c{[i] =0
3. for j=1 to length [A]
4. do c[A[j]] = c[A[j]] + 1
5. for i=1 to K
6. do c[i] = c[i] + c [i-1]
7. for j = length [A] down to 1
8. do B[c[A[j]]] = A[j]
9. c[A[j]] = c[A[j]] -1

Functionality
1
2

A=

K
0
C=

1
0

2
0

3
0

4
0

5
0

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
B=
1

Here is functionality of 4 loops one by one and step by step

First Loop
for i=o to K
C [1] =0
C [2] =0
C [3] =0
C [4] =0
C [5] =0
C [6] =0

Second Loop
C [A[j]] = C [A[j]] + 1
Now here the position of array of C is 0
J=1
C [A[j]] = C 2
0
2
3
[A[j]] +1
C [A [1]] = C [A [1] +1
C [2] = C [2] +1
C [2] = 1
J=2
C [A[j]] = C [A[j]] +1
C [A [2]] = C [A [2] +1
C [5] = C [5] +1
C [5] = 1
J=3
C [A[j]] = C [A[j]] +1
C [A [3]] = C [A [3] +1
C [3] = C [3] +1
C [3] = 1
J=4
C [A[j]] = C [A[j]] +1
C [A [4]] = C [A [4] +1
C [0] = C [0] +1
C [0] = 1
J=5
C [A[j]] = C [A[j]] +1

C
0

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
C [A [5]] = C [A [5] +1
C [2] = C [2] +1
C [2] =2

J=6
C [A[j]] = C [A[j]] +1
C [A [6]] = C [A [6] +1
C [3] = C [3] +1
C [3] = 2
J=7
C [A[j]] = C [A[j]] +1
C [A [7]] = C [A [7] +1
C [0] = C [0] +1
C [0] = 2
J=8
C [A[j]] = C [A[j]] +1
C [A [8]] = C [A [8] +1
C [3] = C [3] +1
C [3] = 3

C=

Third Loop
c[i] = c[i] + c [i-1]
i.1
C[i] = C[i] + C [i-1]
C[i] = C [1] + C [1-1]
C[i] = 2+0
=2
i.2
C[i] = C[i] + C [i-1]

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
C[i] = C [2] + C [2-1]
C[i] = 2+2
=4

i.3
C[i] = C[i] + C [i-1]
C[i] = C [3] + C [3-1]
C[i] = 3+4
=7
i.4
C[i] = C[i] + C [i-1]
C[i] = C [4] + C [4-1]
C[i] = 4+3
=7

i.5
C[i] = C[i] + C [i-1]
C[i] = C [5] + C [5-1]
C[i] = 1+7
=8

Fourth Loop
B[c [A[j]]] = A[j]
C [A[j]] = c [A[j]] -1
J=8
B[C [A [8]]] =A [8]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3
C [A [8]] =
C [A [8]] 1
C [3] = C [3] -1

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
C [3] = C [2]
-1
C [3] = 4-1
=3

J=7
B[C [A [7]]] =A [7]
B[C [0]] = A [0]
B [0] = A [0]
B [0] = 0
C [A [7]] = C [A [7]] 1
C [0] = C [0] -1
C [0] = C [0]
C [0] = 7-1
=6
J=6
B[C [A [6]]] =A [6]
B[C [3]] = A [5]
B [7] = A [5]
B [7] = 3
C [A [6]] = C [A [6]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6
J=5
B[C [A [5]]] =A [5]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3
C [A [5]] = C [A [5]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
J=4
B[C [A [4]]] =A [4]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3
C [A [4]] = C [A [4]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6
J=3
B[C [A [3]]] =A [3]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3
C [A [3]] = C [A [3]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6
J=2
B[C [A [2]]] =A [2]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3
C [A [2]] = C [A [2]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6
J=1
B[C [A [1]]] =A [1]
B[C [3]] = A [8]
B [7] = A [8]
B [7] = 3

Algorithm Date 01-10-2004 Day Friday


Faheem Janjua
C [A [1]] = C [A [1]] 1
C [3] = C [3] -1
C [3] = C [2]
C [3] = 7-1
=6

You might also like