In this tutorial you will learn about difference between recursion and iteration with example.
Both recursion and iteration are used for executing some instructions repeatedly until some condition is true. A same problem can be solved with recursion as well as iteration but still there are several differences in their working and performance that I have mentioned below.
Difference between Recursion and Iteration
Recursion | Iteration | |
Definition | Recursion refers to a situation where a function calls itself again and again until some base condition is not reached. | Iteration refers to a situation where some statements are executed again and again using loops until some condition is true. |
Performance | It is comparatively slower because before each function call the current state of function is stored in stack. After the return statement the previous function state is again restored from stack. | Its execution is faster because it doesn’t use stack. |
Memory | Memory usage is more as stack is used to store the current function state. | Memory usage is less as it doesn’t use stack. |
Code Size | Size of code is comparatively smaller in recursion. | Iteration makes the code size bigger. |
Lets write the implementation of finding factorial of number using recursion as well as iteration.
Recursion Example
Below is the C program to find factorial of a number using recursion.
#include <stdio.h> int factorial(int n){ if(n == 0) return 1; else return n * factorial(n-1); } int main() { printf("Factorial for 5 is %d", factorial(5)); return 0; }
Iteration Example
Below is the C program to find factorial of a number using iteration.
#include <stdio.h> int main() { int i, n = 5, fac = 1; for(i = 1; i <= n; ++i) fac = fac * i; printf("Factorial for 5 is %d", fac); return 0; }
Comment below if you have any queries regarding above tutorial for recursion vs iteration.