Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: Doppel schnell aus Lise löschen.
8. Dez 2014, 23:46
Ok. Thanx. Schau ich mir an.
Als letzter Versuch fäll tmir noch das ein? Der Quicksort ist ja unfassbar schnell. Ist das so korrekt?
Delphi-Quellcode:
function SortCompareX(const A, B: TFLoatPoint): integer;
const
Eps = 1E-4;
begin
Result := CompareValue(A.X, B.X, Eps);
end;
function SortCompareY(const A, B: TFLoatPoint): integer;
const
Eps = 1E-4;
begin
Result := CompareValue(A.Y, B.Y, Eps);
end;
function SortCompareXY(const A, B: TFLoatPoint): integer;
begin
if SortCompareX(A, B) = 0 then
Result := SortCompareY(A, B)
else
Result := 0;
end;
procedure TFloatPoints.Sort;
begin
if FCount > 1 then
begin
QuickSort(0, FCount - 1, SortCompareX);
QuickSort(0, FCount - 1, SortCompareXY);
end;
end;
|
|
Zitat
|