Algorithms | Analysis of Algorithms | Question 19

Consider the following two functions. What are time complexities of the functions?

filter_none

edit
close

play_arrow

link
brightness_4
code

int fun1(int n)
{
    if (n <= 1) return n;
    return 2*fun1(n-1);
}

chevron_right


filter_none

edit
close

play_arrow

link
brightness_4
code

int fun2(int n)
{
    if (n <= 1) return n;
    return fun2(n-1) + fun2(n-1);
}

chevron_right


(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

My Personal Notes arrow_drop_up