Algorithms | Analysis of Algorithms | Question 19
Consider the following two functions. What are time complexities of the functions?
C
int fun1( int n) { if (n <= 1) return n; return 2*fun1(n-1); } |
C
int fun2( int n) { if (n <= 1) return n; return fun2(n-1) + fun2(n-1); } |
(A)
O(2^n) for both fun1() and fun2()
(B)
O(n) for fun1() and O(2^n) for fun2()
(C)
O(2^n) for fun1() and O(n) for fun2()
(D)
O(n) for both fun1() and fun2()
Answer: (B)
Explanation:
Time complexity of fun1() can be written as T(n) = T(n-1) + C which is O(n)
Time complexity of fun2() can be written as T(n) = 2T(n-1) + C which is O(2^n)
Quiz of this Question
Please comment below if you find anything wrong in the above post
Please Login to comment...