Ich habe Mühe, meinen Kopf darüber zu wickeln, wie der Divide and Conquer-Algorithmus für Dimensionen größer als 2 funktioniert, insbesondere wie man das nächste Punktepaar zwischen zwei Probleme.Das nächste Punktepaar in 3+ Dimensionen (Teilen und Erobern)
Ich weiß, dass ich nur Punkte innerhalb einer Entfernung d
der Teilung zwischen den beiden auf der x
Achse berücksichtigen müssen.
Ich weiß, dass im 3d Fall ich jeden Punkt zu nur 15 anderen vergleichen muss.
Was ich nicht verstehe, ist, wie man diese 15 Punkte wählt. Im Fall 2d sortiert man die Werte einfach nach dem Wert y
und durchläuft sie der Reihe nach. Im Fall 3d muss jedoch jeder Punkt mit den 15 am nächsten liegenden Punkten auf den Achsen y
undz
verglichen werden. Ich kann keinen Weg finden, um zu bestimmen, was diese 15 Punkte in einer Weise sind, die keinen Worstfall von O(n^2)
hat ...
Was fehlt mir hier?