GATE CSE
First time here? Checkout the FAQ!
x
+2 votes
45 views

 

Consider the following program

foo(n)
{
  if (n == 1)
     P(n)
          else 
     Q() + foo(n-1); 
}


What is the time complexity for the given function, if the function ‘P’ and function ‘Q’ take O(n) and O(1) unit of time respectively.

  1.   O(n)
  2.   O(n2)
  3.   O(nlogn)
  4.   O(logn)

---------------------------------------------------------------------

T(n) =T(n-1) + C

T(n)= T(n-2) + c +c

T(n) =T(n-k) + c +c + c.......k times

put n-k =1

so,T(n) =O(n) +K*C       (T(1) =O(n))

hence,T(n) =O(n) +N-1*C

so,T(n) = O(n)

is this correct??

asked in Algorithms by Veteran (11.1k points)   | 45 views

1 Answer

+1 vote
Best answer

Here for Base Case i.e., T(1) = O(n) ($\because$ it is given that P takes O(n) time)

In the statement Q() + foo(n-1) ===> Q() takes O(1) time.

So the recurrence relation is,

T(n) = T(n-1) + 1

     = T(n-2) +1 +1

        ...

     =T(n-k) + k

    =O(n) + n-1

which gives O(n)

answered by Active (1.7k points)  
selected by
Top Users Feb 2017
  1. Arjun

    5224 Points

  2. Bikram

    4230 Points

  3. Habibkhan

    3748 Points

  4. Aboveallplayer

    2986 Points

  5. Debashish Deka

    2356 Points

  6. sriv_shubham

    2298 Points

  7. Smriti012

    2142 Points

  8. Arnabi

    2008 Points

  9. sh!va

    1654 Points

  10. mcjoshi

    1628 Points

Monthly Topper: Rs. 500 gift card

20,832 questions
25,989 answers
59,623 comments
22,046 users