Forums Register Login

Question about mem allocation for recursive functions

+Pie Number of slices to send: Send
Hi, my first post here.
I've been trying to wrap my mind around memory allocation for recursive functions.
As far as my understanding goes a recursive function has to go all the way down in the recursion chain until a definite value is returned and consecutive results bubble up. Every recursion step towards that definite return value requires some memory allocation which can lead to stack overflow (like in the example below).



In a book, i came across an example which supposedly solves the stack overflow problem but i cant see how. Is memory still allocated in same fashion as in example above?



Regards
Igor
+Pie Number of slices to send: Send
Welcome to JavaRanch, Igor.

I quickly looked at the algorithm, and it appears to do exactly the same thing as the first one, the only difference being that the first one calculates a factorial starting with n, and the second one starts with 1.

As a matter of fact, the second algorithm will fail for n == 0.

They both use O(n) stack frames.

+Pie Number of slices to send: Send
The second one is worse, as its stack frames are 3 times as large!
We don't have time for this. We've gotta save the moon! Or check this out:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 3323 times.
Similar Threads
Recursion Reciprocals
Timing Methods
Recursion
Recursion of Fibonacci Numbers
using this recursive method slows me down....why?
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 01:20:22.