Предположим, n = 2^k
для некоторого целого числа k
, поэтому n
равно 100...00
.Затем вы можете применить мастер-метод к четной части повторения.и получите theta(n^2)
.
Теперь предположим, что 1
также не в старшем значащем бите, например, 100100..00
.Таким образом, у вас будет хотя бы один уровень в вашем дереве рекурсии, все узлы которого составляют в сумме n^3 * constant
, и тем самым вы получите theta(n^3)
.
Таким образом, ответ будет theta(n^2)
, если n
является степенью двойки и theta(n^3)
в противном случае.Но если мы впервые столкнемся с нечетным n
и он будет равен базовому случаю, то он может быть не кубическим.
После некоторого разговора с келалакой мне пришло в голову, что если сначала 1
будет k
-й справа от n
, тогда, если k > (2/3)(1/lg 2)lg n
, нас больше не волнует (n/2^k)^3
.Это все еще O(n^2)
.