Доказательство для глубины сбалансированного дерева поиска

голоса
2

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

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

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

Задан 08/11/2009 в 00:38
источник пользователем
На других языках...                            


2 ответов

голоса
2

По определению «сбалансированный», глубина каждого левого и правого поддеревьев одного и того же узла отличаются не более чем на один. «Глубина», как правило, определяются как «число шага самого длинной ходьбы от корня дерева до листьев», так что, например, BST с одним корнем и два листьев (три элемента в единственном пути они могут быть организованы в сбалансированном BST) является сказал, чтобы иметь глубину один (выглядит как вы используете немного другое определение, которое дало бы ему глубину два?), равно как и один с одним корнем и одним листом (независимо от того, что лист левого или правого поддерева в Рута нет никакой разницы), в то время как один только с корнем, который также лист (один элемент) будет иметь глубину 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-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), КЭД.

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

Ответил 08/11/2009 в 01:37
источник пользователем

голоса
0

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

Ответил 04/08/2016 в 16:10
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more