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;