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