x、y座標で数百万点のセットが与えられた場合、ある場所から最も近い1000点を素早く見つけるための選択アルゴリズムは何ですか?ここで「すばやく」とは、自宅のコンピュータで約100msを意味します。近くの点を見つけるアルゴリズムですか?
ブルートフォースは何百万回もの乗算をしてからソートすることを意味します。シンプルなPythonアプリケーションでも1分もかからずに済みますが、インタラクティブなアプリケーションでは長すぎます。
ポイントの境界ボックスがわかるため、スペースを単純なグリッドに分割することも可能です。しかし、ポイントは幾分不均等に分布しているので、ほとんどのグリッドの正方形は空であると思われ、突然一部のポイントに大きなポイントが含まれていると思われます。
編集:正確である必要はありませんが、実際には非常に不正確な場合があります。トップ1000が、実際にはトップ2000からのランダムなポイントのほんの一部であるならば、それは大したことではありません。
編集:ポイントのセットはほとんど変わりません。
のようにGoogleでこれを見つけた誰かのために単に多分この質問ための最善の解決策ではないことを述べていますそれは正確でなければならないのか、それともOKなのでしょうか?選択された1000のうち900が最も近い1000の中にありますか? – TonJ
ポイントは固定ですか?ポイントが変更される前に、いくつかの異なる場所に最も近い1000ポイントを取得しますか? –