Претензии : Нет, нет таких μ .
Доказательство : мы даем бесконечную последовательность деревьев AVL растущего размера, значение баланса веса стремится к 0 , что противоречит утверждению.
Пусть полное дерево высоты h ; у него 2 часа + 1 - 1Chh2h+1−1 узел.
Пусть - дерево Фибоначчи высоты h ; имеет F h + 2 - 1 узлов. [ 1 , 2 , TAoCP 3 ]ShhFh+2−1
Пусть теперь с T h = N ( S h , C h ) последовательностью деревьев, которую мы называем контрпримером.(Th)i≥1Th=N(Sh,Ch)
Рассмотрим балансировочное значение корня для некоторого h ∈ N + :Thh∈N+
Fh+22h+1+Fh+2−1=11+2h+1Fh+2−1Fh+2∼Fh+22h+1=15√(ϕh+2−ϕ^h+2)2h+1∼ϕh+25–√⋅2h+1→h→∞0
Это завершает доказательство.
Обозначение :
- - это n- ечисло ФибоначчиFnn
- являетсяЗолотым сечением, ф ≈ - 0,62ϕ≈1.6ϕ^≈−0.62 сопряженной.
- означает, что f и g асимптотически равны, т.е. lim n → ∞ f ( n )f∼gfglimn→∞f(n)g(n)=1 .
Нота бене : деревья Фибоначчи - это именно те деревья AVL с наименьшим количеством узлов для данной высоты (или, что эквивалентно, максимальной высоты для данного числа узлов).
Приложение : Как мы можем придумать деревья Фибоначчи, если бы не слышали, как их упоминал профессор? Ну, как бы выглядело дерево AVL высотой с как можно меньшим количеством узлов? Конечно, вам нужен рут. Одно из поддеревьев должно иметь высоту h - 1 , и мы должны выбрать его с как можно меньшим количеством узлов. Другой может иметь высоту h - 2, не нарушая условия выравнивания высоты, и мы выбираем его также с как можно меньшим количеством узлов. По сути, мы строим деревья, которые хотим рекурсивно! Это первые четыре:hh−1h−2
[ источник ]
Мы устанавливаем повторение для числа узлов в построенном таким образом дереве с высотой h :f(h)h
f(1)f(2)f(h)=1=2=f(h−1)+f(h−2)+1n≥3
Решение этого приводит к который мы использовали выше.f(h)=Fh+2−1
Такое же доказательство дано (с меньшими подробностями) в бинарных поисковых деревьях ограниченного баланса Nievergelt и Reingold (1972).