以下代码的时间复杂度是多少?

Gar*_*ick 3 algorithm math loops for-loop time-complexity

For(I=1 ; I<=n ; I++)
{
    For(J=1 ; J<=I ; J++)
        {
             For(K=1 ; K<=n^5 ; K=15 × K)
                 {
                      x=y+z;
                 }
        }  
}
Run Code Online (Sandbox Code Playgroud)

根据我似乎是O(N ^ 2 log N),但是当我分析k循环时,它没有跟随Log N,这让我感到困惑,

Jar*_*len 5

这应该是O(n^2 log(n))因为内部循环将被调用(n/2)(n+1)次数并且它将循环n^5 = 5 * log base 15n的基数15,因为k在循环数中呈指数增长.

这导致5(n^2+n)(log base 15 of n)/2分配给x,即O(n^2 * log(n))

  • 总和为1 + 2 + 3 + 4 + ... + n =(n/2)(n + 1),因为有n/2对,每个加起来加上n + 1.你的第二个循环将在第一次运行一次,第二次循环,第三次运行三次,依此类推至n,所以这适合. (2认同)