0
我不知道这些种类的循环的技术术语(如果存在的话),所以我会提供了一个例子:你如何找到影响彼此的循环运行时间?
x=0
i = 1
while(i<n)
for(j=1 to n/i)
x = x + (i-j)
i*=2
return(x)
在这个例子中,while循环,直接改变的次数数for循环运行,这是由于某种原因,我抛弃
通常,我会一行一行地看看每行会运行多少次,但由于次数的变化,我试着做一个总结,但得到了一个一点点迷路...什么是解决这类问题的一步一步办法?
在笔记答案是O(n),但我这样做时,我得到n日志
任何帮助表示赞赏(N),这是审查我的最后
另外,如果你知道任何好的地方找到这种类型的练习题,我将不胜感激!
谢谢
谢谢你的回答!所以只是为了澄清,因为我指数增长(特别是2的倍数,所以2^j,其中j是迭代次数),while循环运行lgn次。因为内环基本上是n/2^j的总和,它变成了一个几何级数,收敛到一个常数n,留下O(n)? – ChrisM
是的,是的。 –
啊,这很有道理,谢谢!我没有考虑将我设定为2^j,所以我迷路了 – ChrisM