Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Dynamisches Array of Integer sortieren: welches Sortierverfahren???

  Alt 5. Sep 2010, 21:02
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
  Mit Zitat antworten Zitat