Hallo,
Ich wollte mal fragen, ob man folgenden Quicksort Algo für Strings optimieren kann.
(Angenommen es ist ein sehr großes Array)
Delphi-Quellcode:
procedure QuickSort(
var Strings: TStringArray; Start, Stop: Integer);
var
Left: Integer;
Right: Integer;
Mid: Integer;
Pivot:
string;
Temp:
string;
begin
Left := Start;
Right := Stop;
Mid := (Start + Stop)
div 2;
Pivot := Strings[mid];
repeat
while Strings[Left] < Pivot
do Inc(Left);
while Pivot < Strings[Right]
do Dec(Right);
if Left <= Right
then
begin
Temp := Strings[Left];
Strings[Left] := Strings[Right];
// Swops the two Strings
Strings[Right] := Temp;
Inc(Left);
Dec(Right);
end;
until Left > Right;
if Start < Right
then QuickSort(Strings, Start, Right);
// Uses
if Left < Stop
then QuickSort(Strings, Left, Stop);
// Recursion
end;
das Tauschen der Variablen kann man doch bestimmt irgendwie optimieren, evtl. mit CopyMemory oder irgendwelchen anderen Pointer/
Asm Operationen
Danke