Создайте BTree из отсортированного массива - PullRequest
0 голосов
/ 13 июля 2020

Мне нужно построить BTree из отсортированного массива. Есть указатели или как написать такой алгоритм? Есть ли какой-либо алгоритм, который может использовать сортировку массива?

Я искал его в Google, но не смог найти алгоритм для BTree.

1 Ответ

0 голосов
/ 23 августа 2020

Способ @rossum прост, но неэффективен. В его предложении не используется информация, имеющая отсортированный список. Думаю, вы решили проблему одинаковых ключей. (Узлы BTree или List в одном узле BTree)

Я понимаю ваш вопрос следующим образом:

Вы хотите преобразовать отсортированный список / arry непосредственно в btree со степенью t . У меня есть только предположение / идея. Определить точку

  1. Шаг Определить минимальную высоту h для заданного количества элементов n, чтобы вычислить диапазон минимальных и максимальных элементов для данной высоты BTree.

    n (max) = sum (i = 0, i <= h) {Res + = t ^ i * (t-1)} </p>

    n (min) = sum (i = 0, i = x (высокий) и x (низкий)> = (t / 2), в то время как n находится в диапазоне от x (низкий) и x (max) 3. Шаг вычисления рекурсивно переключает узел, где вам нужно изменить vorm x ( high) to x (Low)

  2. step Создайте свое BTree, которое содержит внутренние узлы со степенью (x (high)) и листья с внутренним (x (High) -1) ключи, пока не дойдете до ссылочного узла. После достижения вашего ссылочного узла все внутренние узлы имеют x (низкий) = x (высокий) -1 градус, а все конечные узлы имеют ключи x (низкие).

Но это только идея. Я его не программировал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...