Это рекурсивная реализация последовательности Фибоначчи от Cracking the Coding Interview (5th Edition)
int fibonacci(int i) {
if(i == 0) return 0;
if(i == 1) return 1;
return fibonacci(i-1) + fibonaci(i-2);
}
После просмотра видеоролика о сложности времени этого алгоритма Fibonacci Time Complexity, я теперь понимаю, почему этот алгоритм работает в O (2 n). Однако я борюсь с анализом космической сложности.
Я посмотрел онлайн и задал вопрос.
В этом потоке Quora автор утверждает, что "В вашем случае у вас есть n стековых фреймов f (n), f (n-1), f (n-2),..., f (1) и O (1)". Разве у вас нет двухфазных кадров? Скажем, для f (n-2) Один кадр будет для фактического вызова f (n-2), но не будет также вызова f (n-2) из f (n-1)?