Time 2个嵌套for循环的时间复杂度

Time 2个嵌套for循环的时间复杂度,time,complexity-theory,Time,Complexity Theory,这个问题是根据以前的试卷修改的 只是想知道我是否做对了 根据给定整数n的运算次数,计算出以下代码的时间复杂度T(n): for ( int i = 1; i < n*n*n; i *= n ) { for ( int j = 0; j < n; j += 2 ) { for ( int k = 1; k < n; k *= 3 ) { // constant number C of elementary operation

这个问题是根据以前的试卷修改的 只是想知道我是否做对了

根据给定整数n的运算次数,计算出以下代码的时间复杂度T(n):

    for ( int i = 1; i < n*n*n; i *= n ) {
      for ( int j = 0; j < n; j += 2 ) {
         for ( int k = 1; k < n; k *= 3 ) {
         // constant number C of elementary operations
         }
       }
     }
for(int i=1;i
到目前为止,我已经想出了n^3*n*logn=O(n^4 logn)

我要试一试

第一个循环是O(1)常量,因为它将始终运行3次迭代(
1*n*n*n==n*n

for(int i=1;i
第二个循环是O(0.5n)=O(n)

for(int j=0;j
第三个循环是O(logn)

for(int k=1;k
因此,该算法的时间复杂度为O(n logn)。

我来试试

第一个循环是O(1)常量,因为它将始终运行3次迭代(
1*n*n*n==n*n

for(int i=1;i
第二个循环是O(0.5n)=O(n)

for(int j=0;j
第三个循环是O(logn)

for(int k=1;k

因此,该算法的时间复杂度为O(n logn)。

我认为您遗漏了关键点。我看不出问题的任何地方,它要求你计算出大的复杂性。相反,它要求给定整数n的运算次数

这是我的解决方案

对于给定的n,内循环变量依次取以下值 值:k=1,3^0,3,3^2,3^(m-1)

因此,内部循环对 变量j和i

中间循环变量j取n=2个值

对于给定的n,外循环变量i取三个值,1,n和n^2

因此,整段代码的时间复杂度等于T(n)= 3C(n/2)log3n=1.5Cnlog3n


你可能想检查一下,但这是我对你问题的解释

我认为你没有抓住关键点。我看不出问题的任何地方,它要求你计算出大的复杂性。相反,它要求给定整数n的运算次数

这是我的解决方案

对于给定的n,内循环变量依次取以下值 值:k=1,3^0,3,3^2,3^(m-1)

因此,内部循环对 变量j和i

中间循环变量j取n=2个值

对于给定的n,外循环变量i取三个值,1,n和n^2

因此,整段代码的时间复杂度等于T(n)= 3C(n/2)log3n=1.5Cnlog3n


你可能想检查一下,但这是我对你问题的解释

谢谢你的帮助!,返回并查看我的笔记,这是正确的。谢谢您的帮助!,回去看我的笔记,这是正确的。
for ( int i = 1; i < n*n*n; i *= n )
for ( int j = 0; j < n; j += 2 )
for ( int k = 1; k < n; k *= 3 )