Для вашего цикла вы правы, это должно быть O (log (log (N))), поскольку цикл запускается, когда i = 2, 4, 16, ..., 2 ^ k, ... which 2 ^ k> = N.

учаем сложность времени прямо сейчас, и у меня куча проблем с этим одним примером.

for (i = 2; i < n; i = i * i)
{
     ... do something ...
}

Проф сказал, что это был O (sqrt (N)), но я не уверен, что я убежден. В конце концов, если N = 16, он запускается только 2 раза, а не 4, верно?

Мой подход к решению: 2 ^ (2k) = N, где k - количество выполнений цикла. Извлекая постоянные факторы, k запускает log (N) раз. Куда я здесь не так? Спасибо за любой совет по этому вопросу.

Ответы на вопрос(0)

Ваш ответ на вопрос