该语句将执行多少次?

时间:2019-10-11 16:32:36

标签: time-complexity

该语句将执行多少次?

#include <stdio.h>

int main() {
    p = 0;
    for(i = 1; i < n; i = i * 2)
    {
       p++;
    }
    return 0;
}

答案应该是 log(n),但是我得到的是 log(n)+1

1 个答案:

答案 0 :(得分:0)

准确地说,在时间复杂的情况下:

  • 1来自p=0;
  • dgf来自for循环
  • sgf从循环内部

总共是:

dfh


如果值为p

fhg

为了证明这一点,我们可以说p最初是0,只要i小于n,它就会增加。

如果我们假设gfh,则在循环结束之前我们有k1k2

jty

因此p增加1k1次。因此:p=k1最后。我们知道:

  • jytj
  • ujyut
  • hrth

因此: jytj