Производительность АВЛ-дерева¶
Прежде, чем идти дальше, давайте рассмотрим результат соблюдения этого нового фактора баланса. Утверждением для доказательства станет гарантия, что если дерево имеет фактор сбалансированности -1, 0 или 1, то мы получаем лучшую О-производительность для операций с ключами. Начнём с размышлений о том, как условие баланса изменяет наихудший случай. Есть две возможности, которые следует рассмотреть: перевес дерева влево и вправо. Мы будем изучать деревья высотой 0, 1, 2, и 3, и рисунок 2 иллюстрирует дерево максимально перевешивающее влево согласно новым правилам.

Рисунок 2: Худший случай перевешивающих влево АВЛ-деревьев.
Глядя на общее количество узлов, можно заметить, что для дерева высотой 0 оно равно 1, высотой 1 - 1+1=2, высотой 2 - 1+1+2=4, высотой 3 - 1+2+4=7. Обобщая, количество узлов для дерева высотой h (Nh) равно
Эта рекуррентность может показаться вам знакомой, поскольку очень похожа на последовательность Фибоначчи. Данный факт можно использовать для вывода формулы высоты АВЛ-дерева с заданным количеством узлов. Напомним, что в последовательности Фибоначчи iое число равно
Важный математический результат заключается в том, что числа Фибоначчи с каждым разом становятся всё больше и больше, а отношение Fi/Fi−1 всё ближе и ближе к “золотому сечению” Φ, определяемому как Φ=1+√52. Вы можете обратиться к текстам по математике, если хотите посмотреть вывод предыдущего уравнения. Мы же просто используем его для приближённого вычисления Fi как Fi=Φi/√5. Если переписать уравнение для Nh с использованием этой аппроксимации, то получится
Заменив ссылку на Фибоначчи его аппроксимацией к “золотому сечению”, получим
Перегруппировав переменные и взяв от обоих частей логарифм по основанию 2, получим следующее решение:
Это выражение говорит о том, что каждый раз высота АВЛ-дерева равна константе (1.44), умноженной на логарифм высоты дерева. И это отличная новость для поиска по АВЛ-дереву, поскольку ограничивает его O(logN).