Iteration vs Recursion

Iteration vs Recursion

Image for post

I recently stumbled on a question on Quora where someone asked if he could solve the Tower of Hanoi problem using iteration instead of recursion. I noticed the concepts can sometimes be used interchangeably and they are very similar.

The concept of Recursion and Iteration is to execute a set of instructions repeatedly. The difference between them is that recursion is simply a method call in which the method being called is the same as the one making the call while iteration is when a loop is repeatedly executed until a certain condition is met. Under the hood, both recursion and iteration depends on a condition so as to know when to stop but recursion is simply a process, always applied to a function.

An example of recursion is shown below:

and here?s an example of iteration:

Key Differences between Recursion and Iteration

  • A conditional statement decides the termination of recursion while a control variable?s value decide the termination of the iteration statement (except in the case of a while loop).
  • Infinite recursion can lead to system crash whereas, infinite iteration consumes CPU cycles.
  • Recursion repeatedly invokes the mechanism, and consequently the overhead, of method calls. This can be expensive in both processor time and memory space while iteration doesn?t.
  • Recursion makes code smaller while iteration makes it longer.

These are some of the key differences between iteration and recursion. I hope this has been explanatory.

19