Const n = 8; Type arrType = Array[0 .. Pred(n)] Of Byte; Const m = 256; a: arrType = (44, 55, 12, 42, 94, 18, 6, 67); Procedure RadixSort(Var source, sorted: arrType); Type indexType = Array[0 .. Pred(m)] Of Byte; Var distr, index: indexType; i: integer; begin fillchar(distr, sizeof(distr), 0); for i := 0 to Pred(n) do inc(distr[source[i]]); index[0] := 0; for i := 1 to Pred(m) do index[i] := index[Pred(i)] + distr[Pred(i)]; for i := 0 to Pred(n) do begin sorted[ index[source[i]] ] := source[i]; index[source[i]] := index[source[i]] + 1; end; end; var b: arrType; begin RadixSort(a, b); end.