B +ツリーを使用してkey1に従ってソートされたトゥープル{key1、key2}のリストがあります。この構造は、セカンダリメモリ(HDD)にあります。key1でソートされたリストを必要とするが、key2を使用してリストにランダムアクセスする必要があるアルゴリズムを実装したいと思います。アルゴリズムのリスト全体は必要ありません。必要に応じてディスクからブロックを取得するため、B+Treeは発生するすべての挿入と削除でうまく機能します。
私は1週間頭を悩ませてきましたが、key2で2番目の構造(たとえば2番目のBツリー)を使用するのが唯一の方法だと思いますが、これにより、ツリーの更新に必要なすでに大きなスペースと時間が2倍になります。
ハッシュテーブルについてはよくわかりませんが、これらを使用してキーを特定の値にマップすることはできないと思いますよね?
データを2倍にすることなくkey2へのランダムアクセスを提供できる構造について何か考えがありますか?
あるいは、ランダムアクセスを必要としない代替アルゴリズムを使用することもできますが、それを最後の解決策として残したいと思います。
前もって感謝します