该语句将执行多少次?
#include <stdio.h>
int main() {
p = 0;
for(i = 1; i < n; i = i * 2)
{
p++;
}
return 0;
}
答案应该是 log(n),但是我得到的是 log(n)+1 。
答案 0 :(得分:0)
准确地说,在时间复杂的情况下:
p=0;
总共是:
如果值为p
:
为了证明这一点,我们可以说p
最初是0
,只要i
小于n
,它就会增加。
如果我们假设,则在循环结束之前我们有k1
和k2
:
因此p
增加1
达k1
次。因此:p=k1
最后。我们知道:
因此: