가장 가까운 이웃 문제가 있습니다.
실수 (매우 큰 !)과 목표 실수 , SUM이 가장 가까운 및 를 찾으십시오. . 우리는 합리적인 전처리 / 인덱싱을 허용합니다 (까지 )이지만 쿼리시 (제공됨) ) 결과가 매우 빠르게 반환되어야합니다 (예 : 시각).
(단순한 예 : SINGLE 만 원한다면 가장 가까운 , 우리는 정렬합니다 오프라인, 쿼리시 이진 검색을 수행합니다. ).
작동하지 않는 솔루션 :
1) 정렬 오프라인 상태 인 다음 쿼리 시간에 양쪽 끝에서 시작하여 두 개의 포인터를 안쪽으로 이동하십시오 ( http://bit.ly/1eKHHDy ). 좋지 않기 때문에 쿼리 시간.
2) 정렬 오프라인에서 쿼리 시간에 "버디"에 대한 이진 검색을 수행하여 . 좋지 않기 때문에 쿼리 시간.
3) 모든 쌍을 정렬 오프라인으로 설정 한 다음 이진 검색을 수행하십시오. 좋지 않기 때문에 전처리.
감사!
추신. 실습에 필요한 추가 일반화 : (1) 과 50 차원 벡터, (2) 벡터 코사인 거리와 "닫기"및 (3) -최고의 가장 가까운 쌍, 그저 1 최고가 아닙니다.