我已经在这里阅读了大量关于找到不同算法的时间复杂度的问题,我认为这是我理解的,直到我将其应用于算法的外部循环:
对于i = 1步i←n * i而i< n ^ 4做
如果有必要,我可以发布完整的算法,但我不想这样做,如果可能的话,我希望自己完成一项功课。
我无法弄清楚该循环的复杂性是什么。我认为它只有4只,除非n = 1,但我对于如何正式表达这一点我是空白的。无论如何,它还是我完全错了!
有人能够帮忙解决这个问题吗?
答案 0 :(得分:0)
将你的循环翻译成C(只是为了确保我理解你的伪代码):
for (i=1; i < n^4; i = i * n ) {
...
}
关键问题是i
次迭代后x
是什么?答案:i^x
(你可以通过归纳证明)。因此,当x
为4时,i
为n^4
并且循环退出。因此它在4次迭代中运行并且是恒定时间。