算法的大O表示法

时间:2017-10-09 22:17:22

标签: big-o discrete-mathematics

i := 1
t := 0
while i <= n:
    t := t + i
    i := 2i

因此,我将此伪代码中的操作数计为3n + 2,然后确定该算法必须为O(n)。我对while循环感到困惑,因为它小于或等于n而不是小于n,这会增加操作次数吗?

1 个答案:

答案 0 :(得分:2)

  

我将此伪代码中的操作数计为3n + 2

如何?它应该更接近O(log(n)),因为在每一步(除了第一步,通过之外)你基本上都在做:

i:= 3i

因此,我呈指数增长而不是线性增长。举几个例子,n非常大(> 1000),看看我能赶上多快。