代码段的运行时间是多少?

时间:2017-02-07 21:42:03

标签: algorithm runtime time-complexity pseudocode

有人可以帮助我找到以下代码段的运行时复杂性吗?

请帮助我找到上面给出的代码段的运行时复杂性。

1 个答案:

答案 0 :(得分:1)

我猜你的代码有问题,特别是在第一个while循环中。

while (i <= n);

while loop语句后面加一个分号表示循环语句下没有语句。为了您的信息,这个while循环将无限运行,因为您没有更新循环变量i

如果你错误地放了那个分号,那么while会迭代n次,这会使while循环的时间复杂度为O(n)

但是第二个while循环的时间复杂度为O(log n),因为您通过将值减半来减少循环变量j

while (j > 0)
    y := x/(2*j);
    j = j /2; 
    i = 2 *i;

因此,总的来说,如果你同时考虑两个while循环,那么总时间复杂度应该是O(n + log n),相当于O(n)