Я пытался решить эту проблему, и я придумал решение, как показано ниже, что сильно отличается от алгоритма «Википедия». Я не понимаю, что не так с моим решением, которое также является O (nlogn).Closet пара точек другой подход
Ввод: Набор координат по оси x-y. {(2,4), (5,3), (3,7), (4,2), (6,3)}
Мой Решение:
- Сортировка данного множества WRT х-координаты. {(2,4), (3,7), (4,2), (5,3), (6,3)}. Сложность O (nlog)
- Найдите минимальное расстояние между последовательной парой, давайте назовем его min_x. Сложность O (n)
- Сортировка заданного набора по y-координатам. {(4,2), (5,3), (6,3), (2,4), (3,7)}. Сложность O (nlog)
- Найдите минимальное расстояние между последовательной парой, давайте назовем его min_y. Сложность O (n)
- min_d = min (min_x, min_y) пара, в результате которой min_d является парой с самым коротким расстоянием.
Неправильно? Что мне не хватает?
«Это неправильно?» <- Итак, ваши тесты проходят? – timgeb
Я имею в виду, я не могу найти встречный пример, чтобы доказать это как неправильное. Это то, что создает путаницу. –
в примере, который вы даете, наборы данных, похоже, не совпадают. –