GATE CSE
First time here? Checkout the FAQ!
x
0 votes
216 views
QUESTION 14 : Consider the below Pseudo code written in C style 
bool fun(int arr[], int n, int X) {  
    if (X == 0)     
        return true;  
    if (n == 0 && X != 0)    
        return false;   
    if (arr[n–1]*arr[n–1] > X)     
        return fun(arr, n–1, X);  
  // Here "|| "indicates logical or  
  return fun(arr, n–1, X) || fun(arr, n–1, X – arrr[n–1]*arr[n–1]); 
}

Which of the following is true about above code. 
A) Time Complexity of fun() is O(2n) and it requires O(n) extra space 
B) Time Complexity of fun() is O(2n) and it requires O(n2) extra space 
C) Time Complexity of fun() is O(n2) and it requires O(n) extra space 
D) Time Complexity of fun() is O(n2) and it requires O(n2) extra space 
Correct – A

How to calculate space complexity?

asked in Algorithms by Active (1.6k points)   | 216 views

1 Answer

+5 votes
Best answer
See how many function calls are active in the stack. Here, function 'fun(n)' can give a call to fun(n-1), which inturn will call fun(n-2) and so on.. till n=0.

When n becomes 0, fun will start returning, ie, it starts popping out of the stack. So, at max, there are n to 0, functions in the stack. Hence space complexity is O(n).
answered by Loyal (3.8k points)  
selected by


Top Users Sep 2017
  1. Habibkhan

    7838 Points

  2. Warrior

    2812 Points

  3. Arjun

    2696 Points

  4. rishu_darkshadow

    2692 Points

  5. A_i_$_h

    2456 Points

  6. manu00x

    2040 Points

  7. nikunj

    1980 Points

  8. Bikram

    1864 Points

  9. makhdoom ghaya

    1790 Points

  10. SiddharthMahapatra

    1718 Points


26,243 questions
33,815 answers
80,260 comments
31,168 users