Member 13772639 Ответов: 1

Я попробовал этот вопрос, но при решении этого алгоритма возникает некоторая ошибка.


Consider a new B-tree operation COMBINE (T1,T2,k). This operation takes as input two B-trees T1 and T2 with the same minimum degree parameter t, plus a new key k that does not appear in either T1 or T2. We assume that all the keys in T1 are strictly smaller than k and all the keys in T2 are strictly larger than k. The COMBINE operation produces a new B-tree T , with the same minimum degree t, whose keys are those in T1, those in T2, plus k. In the process, it destroys the original trees T1 and T2. In this problem, you will design an algorithm to implement the COMBINE operation. Your algorithm should run in time O(|h1 − h2| + 1), where h1 and h2 are the heights of trees T1 and T2 respectively. In analyzing the costs, you should regard t as a constant. First consider the special case of the problem in which h1 is assumed to be equal to h2. Give an algorithm to combine the trees that runs in constant time.

Что я уже пробовал:

массив a[0..n−1];
клавиша k begin l ← 0;
r ← n−1
в то время как l ≤ r
do m ← n
(l+r)/2
если
a[m]<k
затем
l←m+1
иначе если
a[m]>k
затем
r←m−1
еще вернуть
м
конец, если
конец пока
вернуть
не найдено

OriginalGriff

Какая ошибка?
Как вы это проверили?
С какими данными вы его тестировали?
Что произошло, когда вы проверили его?

1 Ответов

Рейтинг:
0

KarstenK

Похоже, у тебя есть продвинутое домашнее задание, но на самом деле ты понятия не имеешь.

Здесь вы найдете некоторые учебники о том, как двоичное дерево в C++.

Прежде чем вы сможете закодировать свое решение вы должны повысить свои навыки с помощью Изучайте C++ или язык, который вы кодируете.