Pagini recente » Cod sursa (job #775122) | Cod sursa (job #1313293) | Cod sursa (job #2399309) | Cod sursa (job #109336) | Cod sursa (job #309415)
Cod sursa(job #309415)
// Arhiva educationala - Sortare prin comparare
// Implementare LSD Radix Sort pe 2 biti
// Timp constant n*8
var
n, i, key, k : longint;
v : array[1..500000] of longint;
vKey : array[0..15] of array [0..500000] of longint;
f : text;
begin
assign (f, 'algsort.in');
reset (f);
readln (f, n);
for i := 1 to n do read (f,v[i]);
close (f);
{
for k := 0 to 8 do
begin
vKey[0][0] := 0; vKey[1][0] := 0; vKey[2][0] := 0; vKey[3][0] := 0;
vKey[4][0] := 0; vKey[5][0] := 0; vKey[6][0] := 0; vKey[7][0] := 0;
vKey[8][0] := 0; vKey[9][0] := 0; vKey[10][0]:= 0; vKey[11][0] := 0;
vKey[12][0] := 0; vKey[13][0] := 0; vKey[14][0]:= 0; vKey[15][0] := 0;
for i := 1 to n do
begin
key := (v[i] shr (4 * k)) and 15;
inc(vKey[key][0]);
vKey[key][vKey[key][0]]:=v[i];
end;
n := 0;
for key := 0 to 15 do
for i := 1 to vKey[key][0] do
begin
inc (n);
v[n] := vkey[key][i];
end;
end;
}
assign (f,'algsort.out');
rewrite (f);
for i:=1 to n do write (f,v[i],' ');
close (f);
end.