및 반지름 r 의 집합이 주어 집니다. r 보다 작은 거리에서 더 많은 수의 포인트를 가진 포인트를 찾는 것이 복잡 합니다. 예를 들어 ?
무차별 대입 알고리즘은 모든 점을지나 r 보다 작은 거리에있는 점의 수를 세는 것 입니다. \ mathcal {O} (n ^ 2) 의 복잡성을 줄 것 입니다.
더 나은 접근 방법이 있습니까?
쿼드 트리와 이진 공간 분할 트리를 살펴 보셨습니까? 최악의 경우 점근 적 실행 시간이 무엇인지 알지 못하지만 실제로는보다 효율적인 알고리즘을 제공 할 것으로 기대합니다.
—
DW
(
—
greybeard
ball
타이틀 의 중심은 세트에서 가져와야합니까?) 하나의 아이디어는 반경이 가장 가까운 이웃과의 평균 거리에 비해 작은 지 또는 지름의 순서에 비해 작은 지 추정하는 것입니다. (작은 r에 대한 평면 스윕 )과 그 사이의 넓은 공간).
공의 중심은 x_i 이어야 하지만 그 조건이없는 더 나은 알고리즘이 있다면 관심이 있습니다.
—
Manuel
Ball Range Counting Problem에 대한 알고리즘 보다 빠른 것 같습니다 . 그러나 정확하지 않은 대답을 받아 들일 수 있다면 방향이 다른 일련의 사각형으로 디스크를 근사화 할 수 있습니다. 각 방향에 대해 범위 트리 ( en.wikipedia.org/wiki/Range_tree )를 작성해야합니다. 그러면 시간 (k 안에 사각형 안의 모든 점을 계산할 수 있습니다 -많은 결과 포인트).
—
HEKTO
@HEKTO 점이 비용 로 사각형에 있는지 쿼리하기 위해 비용 의 구조를 만드는 것이 좋습니다 . 그런 다음 근사 공에 몇 개의 다른 점이 있는지 계산하기 위해 모든 점을 살펴보십시오. 이것은 작동 할 수 있지만 그러한 데이터 구조에 필요한 메모리는 무엇입니까? 보다 낮 습니까?
—
Manuel Manuel