Function LinearSort(s: string): string;
var charcount: array[#0..#255] of integer;
i: integer;
j: char;
begin
// zero the charcount array
fillchar(charcount, sizeof(charcount), 0);
// count the particular characters in s
for i:=1 to Length(s) do
inc(charcount[s[i]]);
// the result string is the same length as the input
SetLength(Result, Length(s));
// i = the current length of the result string + 1
i:=1;
// build the result string
for j:=#0 to #255 do
begin
fillchar(Result[i], charcount[j], j);
inc(i, charcount[j]);
end;
end;