Есть ли какой-либо алгоритм лучше, чем O (n^2), чтобы соединить любые две точки по прямой, если их расстояние меньше постоянной t?Подключите любые две точки в двумерном пространстве
Я думаю о сортировке точек в соответствии с их координатой x, а затем ищет другую точку внутри [x-t, x + t]. Но в худшем случае все еще O (n^2). Есть идеи? У нас есть какая-то специальная структура данных для ускорения?
Поиск "ближайшая пара проблем". –
Есть ли ограничение на t? В противном случае, если все точки находятся внутри t друг друга, вам нужно будет соединить каждую точку с любой другой точкой, которая всегда O (n^2). – TilmannZ
Кроме того, поиск «пространственного соединения», например, алгоритм [TOUCH] (https://infoscience.epfl.ch/record/186338/files/sigfp132-nobari_1.pdf) находит все точки пар на максимальном расстоянии. Но вы можете добиться аналогичной производительности с хорошим универсальным многомерным индексом (я могу порекомендовать его, если хотите). – TilmannZ