Delphi-Quellcode:
var
Zahl,I: Integer;
Count: array[0..9] of Integer;
Result: String;
begin
FillChar(Count, SizeOf(Count), 0);
Zahl := 1234562345;
while Zahl <> 0 do
begin
Inc(Count[Zahl mod 10]);
Zahl := Zahl div 10;
end;
for I := Low(Count) to High(Count) do
Result := Result + StringOfChar(Char(I + Ord('0')), Count[I]);
end;
Die einfachste und schnellste Sortierung ist ein indiziertes Array. Im Obigen Beispiel zerlegen wir die Zahl in ihre Ziffern 1,2,3,4,5,6,2,3,4,5 und benutzen diese als Index in Count[]. Darin zählen wir einfach das Auftreten jeder Ziffer. Wir haben also im Count[] array schon von Hause aus nach Ziffern 0 bis 9 sortiert und deren Anzahl ihres Auftretens.
In der Ausgabe als sortierter String gehen wir nun einfach dieses Count[] Array von unten nach oben -> von 0 bis 9, durch und bauen den String zusammen.
Gruß Hagen