Hallo romber,
bei kleinen Zahlenmengen werden die herkömmlichen Sortierverfahren wahrscheinlich schnell genug sein. Der folgende Code beschreibt einen anderen Ansatz für nahezu beliebig große Zahlenmengen mit beschränktem Wertebereich:
Delphi-Quellcode:
procedure Sort (var A: array of Integer);
const
MINVALUE = 1;
MAXVALUE = 128;
ERRVALUE = 255;
var
i, j, k: Integer;
Counter: array [MINVALUE..MAXVALUE] of Integer;
begin
FillChar (Counter, SizeOf(Counter), 0);
for i in A do
if (i >= MINVALUE) and (i <= MAXVALUE) then
Inc (Counter[i]);
k := 0;
for i := Low(Counter) to High(Counter) do
for j := 1 to Counter[i] do
begin
A[k] := i;
Inc (k);
end;
for j := k to High(A) do
A[j] := ERRVALUE;
end;
Gruß Hawkeye