Javaで解決するにはアルゴリズムの種類が&の問題があります。私は2D点の大きなコレクションを持っています(そのうちの約100,000があるとしましょう)。私は、基準を満たす点P(xy)を得るために、探索点SP(X_sp、Y_sp)の周りの与えられた領域にあるそれらの集合を得たいと思う:指定された領域(ウェブサービス)の2D点を最適に検索
x X_sp - constValueとX_sp + constValueの間にあり、yはY_sp - constValueとY_sp + constValueの間です。
数字の関係を知るには、constValueは2,5,10のようになり、x、yは0と1000の間の範囲です。これはウェブサービスであることを意図しているので、同時に多くの異なる点を検索する可能性を考慮する必要があります。
これは固定点であり(計算などで変更されないため)、Xでソートされたオブジェクトと別のオブジェクトのリストを1つ用意することが最適であると考えました。最初にX範囲内のポイントを取得し、参照を使用して、別のリスト(Yでソート)からこのポイントのセットを取得します。次に、この選択をYで絞り込み、その結果得られた領域内の点を取得します。
私はJavaのインサイドアウトを知らないので、私はあなたに最も最適化されたアプローチをご相談したいと思います。範囲内のオブジェクトをすばやく検索できる並べ替え済みの点を格納するために使用するオブジェクトはどれですか?あるいは、私はこのタスクのカスタムアルゴリズムを実装する必要がありますか?また、データベースにポイントを格納する場合、結果を配信するのに十分な速さでSQLクエリを使用しますか?または、NoSQL DBがこれに適していますか?
私は自分のテストを行うつもりですが、私は最初の候補者を探しています。
これはあまりにも広すぎます。 – tnw
この問題の解決策について特定の質問がない限り、この質問はSOには適していません。これは無料のコーディングサービスではありません。 –
問題文がありますか?最初に、タスクを達成するための最適化されたアルゴリズムを見つけてください。次に、コードを最適化するための助けが必要な場合は、ここに到達してください。 – digidude