Время выполнения / сложность времени для цикла while с квадратным корнем
Этот вопрос выглядит относительно простым, но я не могу найти время выполнения в терминах n.
Вот проблема:
j = n;
while(j >= 2) {
j = j^(1/2)
}
Мне действительно не нужно общее время выполнения, мне просто нужно знать, как рассчитать количество ударов второй и третьей строк (они должны быть одинаковыми). Я хотел бы знать, есть ли какая-то формула для ее нахождения. Я вижу, что вышесказанное является эквивалентом:
for(j = n; n >= 2; j = j^(1/2)
Обратите внимание, что тип операции не имеет значения, каждый раз, когда выполняется строка, она считается за 1 единицу времени. Таким образом, строка 1 будет просто 1 единица времени, строка 2 будет:
0 единиц времени, если n были 1,1 единица времени, если n было 2,2 единицы времени, если n было 4,3 единицы времени, если n было 16 и т. Д.Заранее спасибо всем, кто предлагает помощь! Это очень высоко ценится!