void func(int n){
int i=1, k=n;
while (i<=k){
k=k/2;
i = i*2;
}
}
Как рассчитать временную сложность этой функции? Я понимаю, что для присвоения i = 1, k = n требуется два базовых шага c, а для деления значения k и умножения значения i также требуется два базовых шага c, но поскольку значения i и k увеличиваются и уменьшаются в геометрической прогрессии, будет ли сложность времени O (логическая база 4 N) или O (логическая база 2 sqrt (N))?