Формула, которую вы составили, кажется правильной, но ваш анализ не идеален.
T = 2*T(n/2) + 1 = 2*(2*T(n/4) + 1) + 1 = ...
Для i-й итерации вы получите:
Ti(n) = 2^i*T(n/2^i) + i
что теперьВы хотите знать, для чего я делаю n / 2 ^ я равен 1 (или почти любой константе, если хотите), чтобы вы достигли конечного условия n = 1.Это было бы решением n / 2 ^ I = 1 -> I = Log2 (n).Установите его в уравнении для Ti, и вы получите:
TI(n) = 2^log2(n)*T(n/2^log2(n)) + log2(n) = n*1+log2(n) = n + log2(n)
, и вы получите T (n) = O (n + log2 (n) (как сказал @bdares) = O (n) (простокак сказал @bdares)