Classical algorithms usually sort decimal numbers. In binary mode those algorithms don’t work well. Radix sort has been developed to improve the sort performance. This algorithm doesn’t use any control expression.
The Algorithm



Pascal Source Code
PROGRAM RADIX_SORT;
USES crt;
VAR
i,j,k,m,l,n,t,p:integer;
b,a,s:array[1..50] of integer;
LA:array[1..50,1..50] of integer;
BEGIN
clrscr;
writeln('-----------------------------------------------------------');
writeln('This program sorts a set of binary numbers using radix sort');
writeln('algorithm without any control expression');
writeln('-----------------------------------------------------------');
write('How many numbers will be sorted? ');
readln(p);
write('Enter max. binary number of digits:');
readln(n);
for i:=1 to n do
LA[1,i]:=1;
writeln('Enter the binary numbers below in matrix format:');
writeln('NOTE : Put spaces between binary numbers(ex:1 0 0 1 0 1)...!');
for i:=2 to p+1 do
begin
for j:=1 to n do
read(LA[i,j]);
readln;
end;
for i:=1 to p+2 do
a[i]:=i;
for i:=n downto 1 do
begin
b[1]:=1;
k:=1;
m:=1;
for j:=1 to p+1 do
begin
l:=LA[a[j],i];
k:=k+l;
m:=m-l+1;
b[k]:=a[j+1];
s[m]:=a[j+1];
end;
for j:=1 to k-1 do
a[j]:=b[j];
t:=1;
for j:=k to p+1 do
begin
a[j]:=s[t];
t:=t+1;
end;
end;
writeln('Here is the sorted binary numbers...');
for i:=2 to p+1 do
begin
for j:=1 to n do
write(LA[a[i],j]:2);
writeln;
end;
for i:=2 to p+1 do
a[i]:=a[i]-1;
writeln('And here is the Indice:');
for i:=2 to p+1 do
writeln(a[i]);
readln;
END.
Sample Execution
-----------------------------------------------------------
This program sorts a set of binary numbers using radix sort
algorithm without any control expression
-----------------------------------------------------------
How many numbers will be sorted? 5
Enter max. binary number of digits:8
Enter the binary numbers below in matrix format:
NOTE : Put spaces between binary numbers(ex:1 0 0 1 0 1)...!
1 0 0 1 1 1 0 1
1 0 1 0 1 0 1 1
0 0 0 0 1 1 1 1
1 1 0 0 1 1 0 0
0 0 0 0 0 1 1 0
'Here is the sorted binary numbers...
1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 1
1 0 0 1 1 1 0 1
0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 0
And here is the Index:
4
2
1
3
5