Related Articles

Related Articles

Time Complexity Analysis | Tower Of Hanoi (Recursion)
  • Difficulty Level : Medium
  • Last Updated : 27 Feb, 2018

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 : T(n) = 2T(n-1) + 1 ——-equation-1

Solving it by BackSubstitution :
T(n-1) = 2T(n-2) + 1 ———–equation-2
T(n-2) = 2T(n-3) + 1 ———–equation-3



Put value of T(n-2) in equation–2 with help of equation-3
T(n-1)= 2( 2T(n-3) + 1 ) + 1 ——equation-4

Put value of T(n-1) in equation-1 with help of equation-4
T(n)= 2( 2( 2T(n-3) + 1 ) + 1 ) + 1
T(n) = 2^3 T(n-3) + 2^2 + + 2^1 + 1

After Generalization :
T(n)=  2^k T(n-k) + 2^{(k-1)} + + 2^{(k-2)} + ............ +2^2 + + 2^1 + 1

Base condition T(0) == 1
n – k = 0
n = k;
put, k = n
T(n) = 2^n T(0) + 2^{(n-1)} + + 2^{(n-2)} + ............ +2^2 + + 2^1 + 1

It is GP series, and sum is 2^{(n+1)} - 1

T(n)= O( 2^{(n+1)} - 1), or you can say O(2^n) which is exponentioal

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :