2009-11-07 4 views
2

Если T является сбалансированным BST с n элементами, L - его левым поддеревом, а R - правым, как я могу доказать, что его глубина меньше или равна 2log (n) + 1?Доказательство глубины сбалансированного дерева поиска

Существует доказательство по индукции, которое у меня есть, но я не понимаю.

(Я понимаю, что StackOverflow в основном программирование ориентированных, но я нашел некоторые вопросы о бинарных деревьев поиска и решили дать ему попробовать, надеюсь, что я не делаю что-то не хорошо :).)

+1

Это домашнее задание? –

+0

Нет, это просто на моих заметках. – 2009-11-08 01:13:43

ответ

2

По определению " сбалансированный ", глубины каждого левого и правого поддеревьев одного и того же узла отличаются не более чем на один. «Глубина» обычно определяется как «число шагов от самой длинной ходьбы от корня дерева до листа», так например, BST с одним корнем и двумя листьями (три элемента, в единственном способе их размещения в сбалансированном BST) сказал, что имеет глубину 1 (похоже, вы используете немного другое определение, которое даст ему глубину два?), как и один с одним корнем и одним листом (независимо от того, является ли этот лист левым или правым поддеревом корня не имеет значения), в то время как один с одним корнем, который также является листом (один элемент), будет иметь глубину 0. (Нет BST с нулевыми элементами).

Таким образом, для п < = 3 элементы, требующие D (п) глубина дерева, как определено выше, очевидно, D(n) < log(n) + 1log значением базового 2 логарифма) путем осмотра, так как 1 = D(2) < log(2) + 1 = 2 (а также 1 = D(3), для которых правая часть неравенства , log(3) + 1, фактически > 2), и 0 = D(1) < log(1) + 1 = 1 - это дает нам индукционную базу.

Для завершения доказательства по индукции мы должны показать, что если D(k) < log(k) + 1 для всех k < n, то также следует, что D(n) < log(n) + 1.

Если n нечетное, то четкое левое и правое поддерево имеют (n-1)/2 элементов каждый, а дерево имеет глубину 1 больше, чем поддеревья; но затем D(n) = 1 + D((n-1)/2) < 1 + 1 + log((n-1)/2) (по индуктивному предположению) = 1 + log(n-1)log((n-1)/2) = log(n-1) - 1) и, следовательно, более < 1 + log(n), QED.

Если вы используете только n, выполните следующие действия: log(n) вместо log(n-1) и без «фортификационного» финиша.

+0

Доказательство, которое вы предоставляете, для D (n) <= log (n) +1, тогда как формула в моих заметках D (n) <= 2log (n) +1 (извините за поздний комментарий, но я был) – 2009-11-19 13:19:39

+0

@sebkom, поэтому вы можете использовать другое определение глубины, как я упоминал в начале, но даже в этом случае я не понимаю, почему RHS должен быть настолько большим, как у вас. –

0

Ваш ответ верен, если сбалансированное двоичное дерево завершено, количество элементов в правом и левом поддереве может быть (n-1)/2, но если оно не завершено, количество элементов не обязательно должно быть (n-1)/2, поскольку последний уровень может иметь разные элементы

Смежные вопросы