Анализ верен до конца, решение - T(n) = O(n^2)
Обратите внимание, что 4^kT(n/2^k) != O(log n)
, поскольку 4^k
не является константой.
Взгляните на анализ:
T(n) = 4T(n/2) =
= 4^2T(n/2^2)
= 4^3T(n/2^3)
= 4^kT(n/2^k)
= 4^log(n)*T(1) =
= 4^log(n) * 1 =
= (2^log(n))^2 =
= n^2
= O(n^2)
Чтобы формально доказать это: мы используем индукцию
основание: T(1) = 1 = 1^2
Предположим, T(n) = n^2
для каждогоk <= n
T(2n) = 4*T(n) =(induction hypothesis) 4*n^2 = (2n)^2
Таким образом, гипотеза об индукции верна и T(n) = n^2
Этот результат также можно проверить на вольфрам альфа