[Home]
[Chapter]
[Contents]
[Previous Algorithm]
[Next Algorithm]


Radix sort


function sort( r : list ) : list; var head, tail : array[1..M] of list; i, j, h : integer; begin for i:=D downto 1 do begin for j:=1 to M do head[j] := nil; while r <> nil do begin h := charac( i, r^.k ); if head[h]=nil then head[h] := r else tail[h]^.next := r; tail[h] := r; r := r^.next; end; {*** Concatenate lists ***} r := nil; for j:=M downto 1 do if head[j] <> nil then begin tail[j]^.next := r; r := head[j] end end; sort := r end;

C source (424.sort.c) Pascal source (424.sort.p)



© Addison-Wesley Publishing Co. Inc.