Внешний цикл запускается log(n)
раз. Но каждый раз внутренний цикл не запускается в O(n)
. Как показано в объяснении, если i = 1
, внутренний цикл запускается 1
времени. Если i = 2
, внутренний цикл запускается 2 раза. Если i = 4
, внутренний цикл запускается 4
раз. Следовательно, общее количество времени выполнения составляет T(n) = 1 + 2 + 4 + ... + 2^log(n)
.
Теперь упростим T(n)
:
T(n) = 2^(log(n)+1) - 1 = 2^log(n) * 2 - 1 = 2n - 1 = Theta(n)