Вы выполняете функцию один раз для каждого деления n
на 2
, то есть log n
раз.
Итак, вы получите O(log n)
.
Edit:
Логарифм (по основанию 2) числа n
- это степень, которую 2
необходимо повысить, чтобы получить n
.
То есть 2^(log n) = n
, где ^
означает возведение в степень.
Теперь простой способ вычислить аппроксимацию log n
- это разделить n
на 2
, тогда как n > 1
.
Если вы разделили k
раз, вы получите n < 2^k
.
Поскольку k - 1
дивизий все еще дают n > 1
, у вас также есть n >= 2^(k-1)
.
Принимая логарифмы на каждого члена 2^(k - 1) <= n < 2^k
, вы получаете k - 1 <= log n < k
.