Я изо всех сил пытаюсь понять, как алгоритм «разделяй и властвуй» работает для измерений больше 2, в частности, как найти ближайшую пару точек между двумя подзадачами.
Я знаю, что мне нужно рассматривать только точки на расстоянии d
от деления между ними на оси x
.
Я знаю, что в 3-м случае мне нужно сравнить каждую точку только с 15 другими.
Чего я не понимаю, так это как выбрать эти 15 точек. Во втором случае просто сортируются значения по y
значению и проходятся по порядку. Однако в случае 3d каждую точку необходимо сравнить с 15 ближайшими к ней точками на обеих осях y
и z
. Кажется, я не могу найти способ определить, каковы эти 15 баллов, чтобы не было наихудшего случая O(n^2)
...
Что мне здесь не хватает?