Moin.
Evtl. wäre ja mal jemand so nett einen Blick auf folgenden Quicksort zu werfen. Das sortieren funktioniert richtig, nur ist es sehr langsam.
Der Aufruf erfolgt mit QuickSort(0, length(SortString));
SortString ist ein String
Code:
procedure TfrmSortAlg.QuickSort(l, r: integer);
var
i, j: Integer;
temp: char;
begin
if (r > l) then
begin
i := l - 1;
j := r;
repeat
repeat i := i + 1 until SortString[i] >= SortString[r];
repeat j := j - 1 until SortString[j] <= SortString[r];
if (j > i) then
begin
temp := SortString[i];
SortString[i] := SortString[j];
SortString[j] := temp;
end;
until (j <= i);
temp := SortString[i];
SortString[i] := SortString[r];
SortString[r] := temp;
quicksort(l, i - 1);
quicksort(i + 1, r);
end;
end;
Gruß
tr909