Questions about performance differences between recursion and tail recursion

fib2 uses a lot more function calls. fib1(10) calls fib1 about 12 times if I counted properly (fib1(10), fib1(10, 0, 1), fib1(9, 1, 1), fib1(8, 1, 2), etc.) while fib2 calls fib2(10), fib2(9), fib2(8), fib2(8), fib2(7), fib2(7), fib2(6), etc.). The difference is in the algorithm, not in tail or non-tail recursion.

3 Likes