Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Computer Science Introduction to Algorithms Recursion and Space Complexity Space Complexity

karan Badhwar
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
karan Badhwar
Web Development Techdegree Graduate 18,135 Points

space complexity?

How the space complexity is still O(logn) we call the function on every recursive call that adds up to the space and puts up the memory on the stack? How it is still considered O(logn)?

1 Answer

Steven Parker
Steven Parker
231,271 Points

The function itself will still have the same complexity no matter how it is used. But the code it is being called from might have a higher complexity.

karan Badhwar
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
karan Badhwar
Web Development Techdegree Graduate 18,135 Points

Hi Steven Parker, Thank you for responding. So what I was wondering is, We called the Top Function and inside it we called the same function which opens up another function on the Top of the Previous Function and that keeps on going. So for Example we have 3 functions(Same Function) on the stack with different Array, even though they might have the Same Complexity, but until all the sub-functions return a value we cannot determine the actual result, doesn't that add up to the Space Complexity, cause to do an Operation we have not only one but 3 for example functions on the stack? I hope my question is making any sense

Steven Parker
Steven Parker
231,271 Points

The complexity of the recursive version is 0(log n) because it requires more memory on each iteration.

The non-recursive version doesn't require additional memory and has a complexity of 0(1).