5.1.1 – 5.1.3 – Thinking Recursively

In Computer Science Recursion is defined as “where the solution depends on solutions to smaller instances of the same problem”

or simply put as

“a method that calls itself”

Image result for russian dolls

A Recursive function requires 2 things:

  • A base case (which terminates or ends loop)
  • A recursive case (which calls itself)

Advantage of Recursion

  • Function calling related information will be maintained by recursion.
  • Stack evaluation will be take place by using recursion.
  • In fix prefix, post-fix notation will be evaluated by using recursion.

Disadvantage of Recursion

  • It is a very slow process due to stack overlapping.
  • Recursive programs can create stack overflow.
  • Recursive functions can create as loops.

Why do we need recursion?

A Recursive Example

n=5
Gives us the answer

How?

Ok so this is going to take some getting used to.