Points of view:
. But students have a hard time convincing themselves that a function like this has a
two-to-the-n power time complexity , so here we'll go through some basic understanding of time
complexity ? And I promise we promise we 'll answer that fibonacci question.
In terms of our base case , where do we stop once we hit a number less than or equal to one
and every recursion step , we just subtract one from our current value of n. calls. So overall , I
have five calls here. But if I generalize that , for any arbitrary input , I know that in the long run , I
'm going to have about n different function calls recursively. And so for that reason , the time
complexity of this is really just O of n time. Understanding fib is really going to pay off later on in
the lesson when I slam me with some much harder problems. So after these two examples , you
may be able to see the reason I wanted to bring them up , right , maybe you're actually ready to
make the logical leap and make some conclusion about our classic Fibonacci. The height of a
tree is really just the distance from the root node all the way to the far this leaf. A level is just a
collection of nodes that are the same distance away from root. So I know no matter what ,
whenever we call some top level argument for dib , we know that we're going to have one node
at the top level. But to get the number of nodes on the next level , we 'll just multiply that by two.
And the level after that would also multiply by two and multiply to again further levels after that.
And I do this a total of n different times.
The time complexity of this is not the same as space complexity. The number of levels in this
tree is exactly n. The height of the tree is n like we said before , that means our maximum
number of calls is n. We add a stack frame for every call that we make down until just the base
case. For a dip function , we 're looking at two to the n time complexity , but only and space
complexity. Overall for a loop function, we are looking at a two to n. time complexity. For a
Fibonacci function, it has two recursive calls for the first. call. The complexity of fib is
somewhere between dibben lib and Lib. The time complexity of the fib function is not
undesirable complexity. The bottleneck that we 're experiencing is the time complexity. All three
of these functions have an exponential time complexity, but Lib has a two to the n time
complexity and an N space complexity.