ブルートフォースアルゴリズムは、すべてのポイントを調べて、よりも小さい距離にあるポイントの数を数えることです。それは複雑さを与えます。
より良いアプローチはありますか?
四分木と二分空間分割木を見たことがありますか?最悪の場合の漸近実行時間が何であるかはわかりませんが、実際にはより効率的なアルゴリズムを提供する可能性があると予想します。
—
DW
(
—
greybeard 2015年
ball
タイトルからの中心はセットからである必要がありますか?)1つのアイデアは、半径が最も近い隣人までの平均距離と比較して小さいか、または直径のオーダーであるかを推定することです(そして、これらの極端なアプローチを検討します) (小さなrの平面スイープ)とその間の広いスペース)。
ボールの中心はある必要がありますが、その条件がないより良いアルゴリズムがある場合、私も興味があります。
—
Manuel
Ball Range Counting Problemのアルゴリズムよりも高速に見えるようです。ただし、不正確な回答を受け入れることができる場合は、方向の異なる一連の正方形で円盤を近似できます。各方向について、範囲ツリー(en.wikipedia.org/wiki/Range_tree)を構築する必要があります。これにより、時間(kの正方形内のすべてのポイントをカウントできます。-結果のポイントの数)。
—
HEKTO 2015年
@HEKTO ポイントがコスト長方形にあるかどうかをクエリするためにコスト構造を構築することを提案していますか?次に、すべてのポイントを調べて、近似ボールにある他のポイントの数を数えますか?これは機能しますが、そのようなデータ構造に必要なメモリは何でしょうか?よりも低くなりますか?
—
Manuel