Note: those marked with an asterisk I am not 100% confident in my answer/reasoning.
Please feel free to discuss the problems and my proposed solutions below!
4.1
I believe b^d
can be interpreted as the rate at which the work-per-subproblem is shrinking, so D should be the correct answer.
4.2
With a recurrence of T(n) <= 7T(n/3) + O(n^2)
, the running time of the algorithm would be B, O(n^2)
.
4.3
With a recurrence of T(n) <= 9T(n/3) + O(n^2)
, the running time of the algorithm would be C, O(n^2log(n))
.
4.4
With a recurrence of T(n) <= 5T(n/3) + O(n)
, the running time of the algorithm would be C, O(n^log_3(5))
.
4.5
With a recurrence of T(n) <= T(sqrt(n)) + 1
, I believe the running time of the algorithm would be B, O(log(log(n)))
. Think of sqrt(n) = sqrt(2^log(n)) = (2^log(n))^(1/2) = 2^(log(n)/2).