Algorithm 这个算法的时间复杂度正确吗?

Algorithm 这个算法的时间复杂度正确吗?,algorithm,time-complexity,Algorithm,Time Complexity,我已经解决了bellow算法,发现时间复杂度为 O(nlgn*日志(基本3)n) for(a=1;a我恐怕你说错了,第一个算法的时间复杂度是O(n*lgn*log3n)。它是O(n2*log3n)。用于b的循环在O(n)中运行,而不是在O(lgn)中运行 在第二个算法中,让我们看一下c循环,它是Tc=O(n)。如果省略c循环,我们实际上会减少O(n)中的时间,因此c循环将n的乘数带入时间复杂度公式 让我们看一下a和bb取决于a的值。执行b循环体的次数是 Ta,b=1+4+9+16+…+n2 这是

我已经解决了bellow算法,发现时间复杂度为

O(nlgn*日志(基本3)n)


for(a=1;a我恐怕你说错了,第一个算法的时间复杂度是O(n*lgn*log3n)。它是O(n2*log3n)。用于
b
的循环在O(n)中运行,而不是在O(lgn)中运行

在第二个算法中,让我们看一下
c
循环,它是Tc=O(n)。如果省略
c
循环,我们实际上会减少O(n)中的时间,因此
c
循环将
n
的乘数带入时间复杂度公式

让我们看一下
a
b
b
取决于
a
的值。执行
b
循环体的次数是

Ta,b=1+4+9+16+…+n2

这是一个众所周知的自然数平方和公式

&和;n2=n(n+1)(2n+1)/6=O(n3)

最终我们做到了

Ta,b,c=Ta,b*Tc=O(n3)*O(n)=O(n4)


我看到你出于某种原因将
n/2
与O(lgn)联系起来。循环
for(I=1;iaha我现在明白了!非常感谢
for (a=1;a<=n;a++)

   for (b=1;b<=n/2;b++)

     for (c=1;c<=n;c*=3)

        print("A")
for (a=1;a<=n;a++) 

      for (b=1;b<=a^2;b++)

          for (c=1;c<=n/2;c++)

            print("A2")