Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C for循环中n*n*n次迭代的时间复杂度是多少?_C_Algorithm_Data Structures_Time Complexity_Big O - Fatal编程技术网

C for循环中n*n*n次迭代的时间复杂度是多少?

C for循环中n*n*n次迭代的时间复杂度是多少?,c,algorithm,data-structures,time-complexity,big-o,C,Algorithm,Data Structures,Time Complexity,Big O,这些循环的时间复杂度是多少?如果我错了,请纠正我 这个循环是O(n^3),因为它有(n^3)/2+1个迭代 for (int i = 0; i < n * n * n; i+=2) { //body } for(int i=0;i

这些循环的时间复杂度是多少?如果我错了,请纠正我

这个循环是O(n^3),因为它有(n^3)/2+1个迭代

for (int i = 0; i < n * n * n; i+=2)
{
     //body
}
for(int i=0;i

这个循环是O(n^3*m^2),因为它有(n^3+1)*(m^2+1)次迭代。或者这仅仅是O(n^3),因为内部循环不是一个变量n

for (int i = 0; i < n * n * n; i+=2)
{
     for (int j = 0; j < m * m; j++)
     {
     //Body
     }
}
for(int i=0;i
在第一种情况下,时间复杂度为
O(n^3)
。它捕获最重要的项,因此您可以忽略
1/2
的比例因子和常量
+1
。在后一种情况下,它是
O(n^3*m^2)
,除非将
m
视为常数而不是变量。在Big-O表示法中,您不需要只有一个变量来表示输入数据的大小。

在第一种情况下,时间复杂度是
O(n^3)
。它捕获最重要的项,因此您可以忽略
1/2
的比例因子和常量
+1
。在后一种情况下,它是
O(n^3*m^2)
,除非将
m
视为常数而不是变量。在Big-O表示法中,不需要只有一个变量来表示输入数据的大小

这个循环是O(n^3),因为它有(n^3)/2+1个迭代

for (int i = 0; i < n * n * n; i+=2)
{
     //body
}

这个循环是O(n^3*m^2),因为它有(n^3+1)*(m^2+1)次迭代。或者这仅仅是O(n^3),因为内部循环不是一个变量n

for (int i = 0; i < n * n * n; i+=2)
{
     for (int j = 0; j < m * m; j++)
     {
     //Body
     }
}
两者都是正确的。这取决于如果你考虑<代码> m <代码>变量或常数。 这个循环是O(n^3),因为它有(n^3)/2+1个迭代

for (int i = 0; i < n * n * n; i+=2)
{
     //body
}

这个循环是O(n^3*m^2),因为它有(n^3+1)*(m^2+1)次迭代。或者这仅仅是O(n^3),因为内部循环不是一个变量n

for (int i = 0; i < n * n * n; i+=2)
{
     for (int j = 0; j < m * m; j++)
     {
     //Body
     }
}

两者都是正确的。这取决于如果你考虑<代码> m <代码>变量或常数。 在渐近符号中,一个人可以有多个变量。
对于第二种情况,考虑n和m作为变量,复杂性将为O(n^3*m^2)。如果m被视为常数,那么复杂性为O(n^3)。

在渐近符号中,可以有多个变量。
对于第二种情况,考虑n和m作为变量,复杂性将为O(n^3*m^2)。如果m被视为一个常数,那么复杂性是O(n^3)。

我认为你是正确的,除了“因为它有(n^3+1)*(m^2+1)”之外,它应该是,正如你在第一次分析中所做的那样,n^3/2……这取决于
m
n
是什么。在第一种情况下,如果
n
为常数,则循环为常数时间O(1)。记住,自由变量和绑定变量。。。当你写它时,我们通常认为N和M都是自由的,然后首先是O(n ^ 3)和第二个O(n ^ 3×m ^ 2)(外环出现n ^ 3,并且每个内环出现M ^ 2)。我认为你是正确的,除了“因为它有(n^ 3 +1)*(m^ 2 +1)”,应该和第一次分析一样,n^3/2…这取决于
m
n
是什么。在第一种情况下,如果
n
为常数,则循环为常数时间O(1)。记住,自由变量和绑定变量。。。当你写它时,我们通常认为n和m都是自由的,然后首先是O(n ^ 3)和第二O(n ^ 3×m ^ 2)(外环出现n ^ 3,并且每个内环出现M ^ 2)。