MCQ Practice

What is the space complexity of the following recursive implementation? #include #include int max_of_two(int a, int b) { if(a > b) return a; return b; } int rod_cut(int *prices, int len) { int max_price = INT_MIN; // INT_MIN is the min value an integer can take int i; if(len <= 0 ) return 0; for(i = 0; i < len; i++) // subtract 1 because index starts from 0 max_price = max_of_two(max_price, prices[i] + rod_cut(prices,len - i - 1)); return max_price; } int main() { int prices[]={2, 5, 6, 9, 9, 17, 17, 18, 20, 22},len_of_rod = 10; int ans = rod_cut(prices, len_of_rod); printf("%d",ans); return 0; }

A

O(1)

B

O(logn)

C

O(nlogn)

D

O(n!)

Correct Answer: A