Advertisement
Guest User

Untitled

a guest
Sep 21st, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ********Problem 1****************
  2. Assume f1(n) = O(n). Find running time of the following recursive function
  3.  
  4. function Recurse(A[1..n])
  5.         f1(n)
  6.         t1 <-- Recurse(A[1..(n-1)])
  7.         t2 <-- Recurse(A[(2..n])
  8.         return (t1+t2)
  9. end function
  10. **********************************
  11. T(1) = O(1)
  12. So, total run time,
  13. T(n) = O(n) + T(n-1) + T(n-1) + O(1)
  14.      = O(n) + 2T(n-1)
  15.      = O(n) + 2[O(n-1)+2T(n-2)]
  16.      = O(n) + 2O(n-1) + 4T(n-2)
  17.      .......
  18.      = O(n) + 2^1*O(n-1) + 2^2*O(n-2) + ...+ 2^(n-1)*T(1)
  19.      = O(n) + 2^1*O(n) + 2^2*O(n) + ...+ 2^(n-1)*O(1)
  20.      = O(n)*(1+ 2^1 + 2^2 + ...+ 2^(n-1))
  21.      = O(n)* {(2^n)-1}/(2-1)
  22.      = 2^n * O(n) - O(n)
  23.      = O(n*(2^n))
  24.      
  25.  
  26. ***************Problem 2**********
  27. Assume f1(n) = O(log n). Find running time of the following recursive function
  28.  
  29. function Recurse(A[1..n])
  30.         f1(n)
  31.         m <-- n/3
  32.         t1 <-- Recurse(A[1..m])
  33.         t2 <-- Recurse(A[(m+1)..2m])
  34.         t3 <-- Recurse(A[(2m+1)..3m])
  35.         return (t1+t2+t3)/3  
  36. end function
  37. *********************************
  38.  
  39. T(1) = O(1)
  40. So, total run time,
  41. T(n) = O(logn) + O(1) + 3T(n/3)
  42.      = O(logn) + 3T(n/3)
  43.      = O(logn) + 3[O(log(n/3)) + 3T(n/9)]
  44.      = O(logn) + 3O(logn) + (3^2)T(n/(3^2))
  45.      ......
  46.      = O(logn)*(1+3+3^2+...+3^i) + (3^i)*T(n/(3^i))
  47.      = O(logn)((3^i)/2) + n*T(1) //assuming n/(3^i)=1
  48.      = O(logn)(n/2) + nO(1)
  49.      = O(nlogn) + O(n)
  50.      = O(nlogn)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement