У меня есть список касаний {key1, key2}, отсортированных в соответствии с key1 с использованием дерева B +. Эта структура находится во вторичной памяти (HDD). Я хочу реализовать алгоритм, который требует списки, отсортированные по ключу 1, но также требует произвольного доступа к списку с ключом 2. Мне не нужен весь список для алгоритма, я получаю блоки с диска по мере необходимости, поэтому B + Tree прекрасно работает со всеми происходящими вставками и удалениями.
Я бьюсь головой в течение недели, и я думаю, что единственный способ - это использовать вторую структуру (например, второе B-дерево) с key2, но это удваивает и без того большое пространство, необходимое и время, необходимое для обновления дерево.
Я не знаю много о хеш-таблицах, но не думаю, что смогу сопоставить ключ с определенным значением с помощью этих ключей, верно?
Есть ли у вас какие-либо идеи о структуре, которая могла бы предоставить мне произвольный доступ к ключу 2 без удвоения данных?
В качестве альтернативы я мог бы использовать альтернативный алгоритм, который не требует произвольного доступа, но я хочу оставить это как последнее решение.
Заранее спасибо