Ряд Фибоначчи
Если вы построите дерево для рекурсивного кода для генерации ряда Фибоначчи, оно будет выглядеть так:
fib(n)
fib(n-1) fib(n-2)
fib(n-2) fib(n-3) fib(n-3) fib(n-4)
на каком уровне вы встретится с fib (1), чтобы дерево могло "остановиться"?
на ( n-1 )
уровне вы встретите fib(1)
, и на этом рекурсия остановится. Количество узлов будет порядка 2^n
, потому что существует (n-1)
уровней.
Сравнение двоичного дерева
Давайте рассмотрим ваше сравнение двоичного дерева.
Предположим, что оба являются полными двоичными деревьями. Согласно вашему алгоритму, он посетит все узлы один раз, и если «h» - это высота дерева, количество узлов будет порядка 2^h
. Вы можете указать сложность в этом случае как O(2^h)
.
O(n)
в этом случае эквивалентно O(2^h)