Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

QuickSort: Zahlen wie gezählt sortieren

  Alt 24. Jul 2008, 17:36
Hi,

ich benutze folgende QuickSort-Funktion:
Delphi-Quellcode:
procedure QuickSort(var Arr : TDynItemArray; Start, Stop : Integer);
var Left, Right, Mid : Integer;
    Pivot : String;
    Tmp : TItem;
begin
  Left := Start;
  Right := Stop;
  Mid := (Start+Stop) div 2;
  Pivot := LowerCase(Arr[Mid].Name);
  repeat
    while LowerCase(Arr[Left].Name) < Pivot do
      inc(Left);
    while Pivot < LowerCase(Arr[Right].Name) do
      dec(Right);
    if Left <= Right then
    begin
      Tmp := Arr[Left];
      Arr[Left] := Arr[Right];
      Arr[Right] := Tmp;

      inc(Left);
      dec(Right);
    end;
  until
    Left > Right;

  if Start < Right then
    QuickSort(Arr, Start, Right);
  if Left < Stop then
    QuickSort(Arr, Left, Stop);
end;
Sie funktioniert mit Strings einwandfrei. Allerdings möchte ich anstelle von so etwas...
Delphi-Quellcode:
8
81
82
83
84
85
86
87
88
89
9
90
91
92
93
94
95
96
...
...lieber die gewohnte Weise:
Delphi-Quellcode:
8
9
...
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
...
Wie könnte man das realisieren ? Ich habe überhaupt keine Idee.
  Mit Zitat antworten Zitat