Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Doppel schnell aus Lise löschen.

  Alt 8. Dez 2014, 09:18
OK. Vielen Dank für die Beiträge. Ich werde mal testen. Bei der Sort Variante bin ich mir im Moment gar nicht sicher, ob eine so sortierte Liste garantiert, daß identische Punkte auch hintereinander in der Liste liegen.
Delphi-Quellcode:
procedure TFloatPoints.QuickSort(L, R: integer);
var
  I, J, K: integer;
  Pivot: TFloatPoint;
begin
  repeat
    I := L;
    J := R;
    K := (L + R) shr 1;
    Pivot := FItems[K];
    repeat
      while (FItems[I].X < Pivot.X) and (FItems[I].Y < Pivot.Y) do
        Inc(I);
      while (FItems[J].X > Pivot.X) and (FItems[J].Y > Pivot.Y) do
        Dec(J);
      if I <= J then
      begin
        Exchange(I, J);
        Inc(I);
        Dec(J);
      end;
    until I > J;
    if L < J then
      QuickSort(L, J);
    L := I;
  until I >= R;
end;
  Mit Zitat antworten Zitat