- 找到条件规模[while(i<=n)],这里规模就是 i<=n
- 观察变量如何增加[i=i*2]
- 假设执行了T次。
- 计算变量的变化(T次之后,i=2^T)
- 代入规模计算N(2^T=n => T=log2n)
- 得出结论,立即推 时间复杂度为log2N
- 注意事项,有时候变量不是单一简单的改变,可能会随着另外一个变量的改变而改变,需要细心对待!
void fun(int n)
{
int i = 1;
while (i<=n)
{
i = i * 2;
}
}
void fun(int n)
{
int i = 1;
while (i<=n)
{
i = i * 2;
}
}