У меня проблема с ближайшим соседом в двумерной задаче, и я узнал, что kd-деревья - лучшее решение. Я не мог найти готовой реализации для структуры, с которой я работаю, поэтому решил создать свой собственный.Найти медиану координат для построения дерева kd (2D) - C++
Структура Я работаю с это:
struct Point{
int id;
double x;
double y;
};
У меня есть около 100000 точек, на мой вопрос: Как поступить, чтобы найти к срединной точке каждый раз, когда я хочу разделить мои очки, и как определить левой и правой частей в одно и то же время?
Другой вопрос: был ли более эффективный способ продолжения? (Меньшее время может потребоваться).
Вам нужна медианная точка, как в точке, которая ближе всего к среднему? Потому что в 2D-системе средняя точка координат х и у отличается. –
Я имел в виду точку, которая разделяет всю мою точку на два разных раздела, с равными точками (более или менее). Да, это зависит каждый раз, если мы используем x или y. –