我有以下伪代码:

for i=1 to 3*n
         for j=1 to i*i
                for k=1 to j
                    if j mod i=1 then
                         s=s+1
                    endif
                next k
         next j
next i

当我想分析部分s=s+1的次数时,假设这个操作需要一定的时间,我得到一个二次复杂度,或者它是线性的吗?n的值可以是任何正整数。
我的计算如下:
algorithm - 这个程序是二次还是线性的?-LMLPHP

最佳答案

绝对不是二次的,但至少应该是多项式。
它经过3次迭代。
在每一次迭代中,它会执行更多的9n2。
在每一个上面,它可以做更多的9n2。
所以我想应该是o(n5)。

关于algorithm - 这个程序是二次还是线性的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32930341/

10-13 05:55