Удвоение переменной цикла делает цикл логарифмическим по сложности. В таких случаях для оценки сложности помогают основные свойства логарифмов.

  1. При смене основания добавляется константный множитель: \log_a n = C*\log_b n. Поэтому под символом Θ или O основание у логарифма опускают. Точно также как опускают константные множители.
  2. Степень аргумента логарифма можно перекинуть в множитель перед логарифмом: \log n^2 = 2 \log n. Как следствие, под символами Θ и O степень у аргумента логарифма можно отбросить — она эквивалентна умножению на константу.

Очень просто запомнить — степень аргумента и основание логарифма смело выкидывайте из рассмотрения! Давайте попробуем это в деле:

1. Оцените сложность этого кода в зависимости от n 1 балл