Hallo,
folgendes Vorhaben: Ich möchte etwa 1000~ Positionen welche sich in einem simplen Array vom Typ TPositions ->
Delphi-Quellcode:
TPositions = packed record
x, y: single;
end;
befinden nach Distanz sortieren. Meine Überlegung war nun jede Position in dem Array zu durchlaufen und mittels abs die Distanz zu ermitteln. Meine simple Funktion hierzu:
Delphi-Quellcode:
function GetDistance(x1, y1, x2, y2: single): double;
begin
result := abs(x2 - x1) + abs(y2 - y1);
end;
Wie sortiere ich die Positionen nun möglichst schnell im Array nach der Distanz? Einstiegspunkt soll dabei immer die Distanz zum ersten Eintrag im Array sein. Mir fällt da nur ein die Liste mehrmals zu durchlaufen um von jeder Position die Distanz zu ermitteln und dann irgendwie zu ordnen.
Geht das nicht irgendwie bequemer?
Gruß