Bei einem Satz von mehreren Millionen Punkten mit x, y-Koordinaten ist der Algorithmus der Wahl, um schnell die Top 1000 der nächstgelegenen Punkte von einem Ort zu finden. "Schnell" bedeutet hier ungefähr 100ms auf einem Heimcomputer.Algorithmus zum Finden von Punkten in der Nähe?
Brute Kraft würde bedeuten, Millionen von Multiplikationen zu tun und sie dann zu sortieren. Während dies in nur einer einfachen Python-App in weniger als einer Minute möglich ist, ist es für eine interaktive Anwendung immer noch zu lang.
Die Bounding Box für die Punkte wird bekannt sein, so dass die Partitionierung in ein einfaches Raster möglich wäre. Die Punkte sind jedoch etwas ungleich verteilt, daher vermute ich, dass die meisten Gitterquadrate leer sind und plötzlich einige von ihnen einen großen Teil der Punkte enthalten würden.
Edit: Muss nicht genau sein, kann tatsächlich sehr ungenau sein. Es wäre keine große Sache, wenn die Top 1000 tatsächlich nur einige zufällige Punkte von den Top 2000 wären.
Bearbeiten: Satz von Punkten ändert sich selten.
gefunden Muss es genau sein, oder ist es auch in Ordnung, wenn z 900 von 1000 ausgewählten gehören zu den nächsten 1000? – TonJ
Ist die Anzahl der Punkte festgelegt? Werden Sie die nächsten 1000 Punkte für verschiedene Standorte abrufen, bevor sich die Punkte ändern? –