我遇到了很多关于while循环的大符号和循环内变量乘法的示例。我仍然无法理解。
这样的代码
for(int i = i; i <= n; i = i*2)
被视为lgn
,因为它会将值操纵2的倍数。
我也有这样的代码
while(i>N)
{
i/=2;
}
也被视为lgn
,因为变量都被2操纵。但是,如果我将代码更改为类似
while(x > 0.01){
x = x* 0.8;
y = y + x;
}
主要关注的是,安全地说这个循环的运行时复杂性是log base 0.8
?
或者假设是log base 1.25
?
我确实理解log base 0.8
和log base 1.25
未定义,因此while循环的运行时复杂性在技术上应为O(n)
。