緯度、経度、およびタイム ゾーンのトリプレットの非常に長い半ソート リストがあります。このリストをすばやく検索して、特定の緯度と経度に最も近いタイム ゾーンを見つけられるようにしたいので、このリストを KD ツリーにしたいと考えています。
最初にファイル全体をある種のデータ構造に読み込む必要があると考えています(どのデータ構造ですか?おそらくArrayList<Triplet<Double, Double, String>>
?)。次に、その構造の中央値要素を取得してルートにし、左と右のリストを残します。次に、各リストの中央値要素を取得し、それを左または右の子として追加し続けます。
これを最初に試みたときは、時間がかかり、効率が悪いように思えました... しかし、私はそれが間違っていたように感じます。私がやろうとしていることのアルゴリズムまたは疑似コードを教えてもらえますか?