i := 1
t := 0
while i <= n:
t := t + i
i := 2i
因此,我将此伪代码中的操作数计为3n + 2,然后确定该算法必须为O(n)。我对while循环感到困惑,因为它小于或等于n而不是小于n,这会增加操作次数吗?
答案 0 :(得分:2)
我将此伪代码中的操作数计为3n + 2
如何?它应该更接近O(log(n)),因为在每一步(除了第一步,通过之外)你基本上都在做:
i:= 3i
因此,我呈指数增长而不是线性增长。举几个例子,n非常大(> 1000),看看我能赶上多快。