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

img

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).