# Time Complexity Analysis | Tower Of Hanoi (Recursion)

Tower of Hanoi is a mathematical puzzle where we have three rods and n disks. The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:

1) Only one disk can be moved at a time.

2) Each move consists of taking the upper disk from one of the stacks and placing it on top of another stack i.e. a disk can only be moved if it is the uppermost disk on a stack.

3) No disk may be placed on top of a smaller disk.

Pseudo Code

TOH(n, x, y, z) { if (n >= 1) { // put (n-1) disk to z by using y TOH((n-1), x, z, y) // move larger disk to right place move:x-->y // put (n-1) disk to right place TOH((n-1), z, y, x) } }

Analysis of Recursion

Recursive Equation : ——-equation-1

Solving it by BackSubstitution :

———–equation-2

———–equation-3

Put value of T(n-2) in equation–2 with help of equation-3

——equation-4

Put value of T(n-1) in equation-1 with help of equation-4

After Generalization :

Base condition T(0) == 1

n – k = 0

n = k;

put, k = n

It is GP series, and sum is

, or you can say which is exponentioal

## Recommended Posts:

- Practice Questions on Time Complexity Analysis
- Cost Based Tower of Hanoi
- Recursive Tower of Hanoi using 4 pegs / rods
- Complexity Analysis of Binary Search
- A Time Complexity Question
- Time Complexity of Loop with Powers
- An interesting time complexity question
- Time Complexity of building a heap
- Time Complexity where loop variable is incremented by 1, 2, 3, 4 ..
- Understanding Time Complexity with Simple Examples
- Time complexity of recursive Fibonacci program
- Python Code for time Complexity plot of Heap Sort
- Algorithms Sample Questions | Set 3 | Time Order Analysis
- Time Complexity of a Loop when Loop variable “Expands or Shrinks” exponentially
- Analysis of Algorithm | Set 5 (Amortized Analysis Introduction)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.