Naive recursion is highly inefficient because it generates exponentially many repeated subproblems. When visualized as a recursion tree, identical nodes such as f(4), f(3), and f(2) are triggered multiple times by different parent nodes, meaning the same calculations are redundantly executed across different branches.
Conditions: The algorithm uses naive recursion without memoization.; The recurrence relation is f(n)=f(n−1)+f(n−2).
Naive recursion is highly inefficient because it generates exponentially many repeated subproblems. When visualized as a recursion tree, identical nodes such as f(4), f(3), and f(2) are triggered multiple times by different parent nodes, meaning the same calculations are redundantly executed across different branches.
Conditions: The algorithm uses naive recursion without memoization.; The recurrence relation is f(n)=f(n−1)+f(n−2).
The number of nodes per level grows as a power of 2 because each recursive call splits into exactly two subcalls. Starting with 1 node at the root (level 1, 20), the second level has 2 nodes (21), the third has 4 nodes (22), and the fourth has 8 nodes (23).
Conditions: The recurrence relation is f(n)=f(n−1)+f(n−2), producing a binary tree.; Levels are numbered starting from 1.; The tree is counted as a full binary tree for theoretical estimation.
The number of nodes per level grows as a power of 2 because each recursive call splits into exactly two subcalls. Starting with 1 node at the root (level 1, 20), the second level has 2 nodes (21), the third has 4 nodes (22), and the fourth has 8 nodes (23).
Conditions: The recurrence relation is f(n)=f(n−1)+f(n−2), producing a binary tree.; Levels are numbered starting from 1.; The tree is counted as a full binary tree for theoretical estimation.