私は楽しみのためだけに群がるボイドのシミュレーションに取り組んでおり、それを少し最適化したいと考えています。作業が必要な領域は、特定のボイドの近くでボイドを見つけることです。タスクに適したある種の空間データ構造を実現することが最善の策であると考えています (こちらを参照して、少し下にスクロールしてください)。
何をするにしても、Java でゼロから自分自身を実装します。そうすれば、選択したデータ構造について、多数のライブラリ関数を呼び出しただけの場合よりも多くのことを学ぶことができます。
R-Trees、kd trees、およびQuadtreesを認識しています。私の意見では、それらはすべて実行可能なオプションです。しかし、私はこれらのデータ構造の経験がなく、何が私の目的に最も適しているか完全にはわかりません. この規模では何も必要ありません.100万ではなく、おそらく数百のボイド、おそらく最大で1000のボイドを話していますが、最終的にはAndroidフォンで実行する可能性があることを覚えておいてください.
このためのデータ構造(もちろん、上記に限定されません)をお勧めし、代替案よりもそれを選択する正当な理由を教えてください。
はい、この質問を見ました。いいえ、私はその答えに満足していません。理由がまったく示されていません。
ああ、もう1つ-タイトルが言うように、これは厳密に2次元のみです。