G
Guten_Morgen123
Gast
Einen wunderschönene guten Morgen zusammen,
Ich hab folgendes Problem, ich hab eine räumliche Baumstruktur, konkret einen kd-Baum, und bin jetzt dabei die k-Nearest-Neighbor Suche zu implementieren. Also eine gewissen Anzahl k von am nächsten gelegenen Punkten zu einem gegeben Objekt.
Cool wäre es hier eine PriorityQueue der Länge k zu benutzten, dann den Baum zu durchlaufen und Objekte die näher dran sind als das kte Objekt in der Queue in die Queue zu packen, so daß das letzte Objekt rausfliegt.
Das Problem ist jetzt, daß ich eine Art Map zwischen Objekt und Abstand zu Suchpunkt in der Queue verwalten muss. Hinzu kommt noch, dass in den Abstand nicht als Key verwenden kann, da er nicht eindeutig ist (mehrere Punkte können ja den gleichen Abstand haben). Außerdem ist eine Map ja selber eine Liste und nicht nur die Verknüpfung von einem einzelnes Objekt und einem Key. Ich bräuchte ja sowas in der Art Queue[Map{Objekt:11, Abstand:20}, Map{Objekt:44, Abstand:123},Map{Objekt:4, Abstand:445}] -> also sortiert nach Abstand.
Also was gehen würde, wäre einfach eine neue Klasse zu schreiben die ein Punktobjekt und den Abstand hält, dazu noch einen Comparator und das ganzen dann in die Queue zu stecken.
Denk ihr, dass is so am Besten, oder kann ich doch noch irgendwie das Map-Interface geschickt einbauen.
Danke und Gruß
Ich hab folgendes Problem, ich hab eine räumliche Baumstruktur, konkret einen kd-Baum, und bin jetzt dabei die k-Nearest-Neighbor Suche zu implementieren. Also eine gewissen Anzahl k von am nächsten gelegenen Punkten zu einem gegeben Objekt.
Cool wäre es hier eine PriorityQueue der Länge k zu benutzten, dann den Baum zu durchlaufen und Objekte die näher dran sind als das kte Objekt in der Queue in die Queue zu packen, so daß das letzte Objekt rausfliegt.
Das Problem ist jetzt, daß ich eine Art Map zwischen Objekt und Abstand zu Suchpunkt in der Queue verwalten muss. Hinzu kommt noch, dass in den Abstand nicht als Key verwenden kann, da er nicht eindeutig ist (mehrere Punkte können ja den gleichen Abstand haben). Außerdem ist eine Map ja selber eine Liste und nicht nur die Verknüpfung von einem einzelnes Objekt und einem Key. Ich bräuchte ja sowas in der Art Queue[Map{Objekt:11, Abstand:20}, Map{Objekt:44, Abstand:123},Map{Objekt:4, Abstand:445}] -> also sortiert nach Abstand.
Also was gehen würde, wäre einfach eine neue Klasse zu schreiben die ein Punktobjekt und den Abstand hält, dazu noch einen Comparator und das ganzen dann in die Queue zu stecken.
Denk ihr, dass is so am Besten, oder kann ich doch noch irgendwie das Map-Interface geschickt einbauen.
Danke und Gruß