ONLY DO PART C AND D
c) f(n) = 2^2n = O(2^n)
Big O describes an upper limit on the growth behaviour of a function, for example the runtime of a program, when inputs become large. So for function f(x) = log(n), or f(x) = n, both are O(n^2), because both are always smaller than n^2. This is due to the fact that Big O notation gives us the upper bound, which need not to be the just greater than the exact function.
Hence for Part c, we can see easily that 2^2n is always greater than 2^n, hence f(n) can’t be O(2^n) in any case.
Similarly for part D, it is correct.
for Theta notation, the function gives us the lower bound, which means for f(n) = log(n) or f(n) = n, for both, the lower bound can be theta(1), because 1 is always lesser than log(n) or n;
So for part d, as 2^n is always lesser than 2^2n, hence we can safely say that
f(n) is theta(2^n).