2 차원 평면에 두 개의 세트 점이 있습니다. I 포인트의 가장 가까운 쌍 찾을 들 , t를 하도록 S ∈ S , t ∈ T 와, 상기 유클리드 거리 들 , t는 가능한 한 적다. 이것을 얼마나 효율적으로 할 수 있습니까? O ( n log n ) 시간 내에 수행 할 수 있습니다 . 여기서 n = | S | + | T | ?
나는 하나의 세트가 주어진 경우 알아 , 다음 포인트의 가장 가까운 쌍을 찾을 가능성 들 , 의 ' ∈ S 에서 O ( N 로그 N ) 시간을 사용하여 표준 분할 정복 알고리즘을 . 그러나 S 또는 T 내의 가장 가까운 두 지점 사이의 거리와 해당 세트에서 가장 가까운 두 지점 사이의 거리 사이에 연결이 없기 때문에 해당 알고리즘은 두 세트의 경우 일반화되지 않는 것 같습니다 .
집합 를 k- d 트리에 저장 한 다음 가장 가까운 이웃 쿼리를 사용하여 각 s ∈ S 에 대해 T 에서 s 에 가장 가까운 점을 찾습니다 . 그러나이 경우 최악의 실행 시간은 O ( n 2 ) 시간 만큼 나쁠 수 있습니다 . 의 포인트 경우 말하는 결과가 있습니다 T는 무작위 후, 분산되어 각 쿼리의 예상 실행 시간이 O ( 로그 N ) 우리가 예상 실행 시간과 알고리즘을 얻을 것, 그래서 O를 ( N 로그 , n은 ) 점이 무작위로 분포된다는 보장을 받았지만 임의의 점 모음에서 작동하는 알고리즘을 찾고 있습니다 (무작위로 분포되지는 않음).
동기 부여 : 이 다른 질문에 효율적인 알고리즘이 유용 할 것 입니다.