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.