Algorithm 计算「;“时间复杂性”;

Algorithm 计算「;“时间复杂性”;,algorithm,time-complexity,big-o,cpu-time,Algorithm,Time Complexity,Big O,Cpu Time,我希望你做得很好 我正在计算我的算法的时间复杂度,该算法有三个嵌套的for,但我做了一个技巧,在最新的for中加入了if,如: for (i=0 ; i<n1 ; i++){ for (j=0 ; j<n2 ; j++){ for (k=0 ; k<n3 ; k++){ if (A[i][j][k] == true){ ... } } } } fo

我希望你做得很好

我正在计算我的算法的时间复杂度,该算法有三个嵌套的
for
,但我做了一个技巧,在最新的
for
中加入了
if
,如:

for (i=0 ; i<n1 ; i++){
    for (j=0 ; j<n2 ; j++){
        for (k=0 ; k<n3 ; k++){
            if (A[i][j][k] == true){
               ...
            }
        }
     }
 }

for(i=0;i如果在
条件下执行恒定时间操作:

复杂性仍然是O(n^3),因为条件事后思考for
循环的
部分仍在执行


如果在
条件下执行恒定时间操作,则条件检查,即
i

复杂性仍然是O(n^3),因为条件事后思考for
循环的
部分仍在执行


条件检查,即,
ii如果我们跟踪您并且A的所有条目都是假的,那么运行时间将是0。计算几何,真的吗?理论上可能是这样的,在实践中,一个智能特殊编译器可以证明这个代码段永远不会进入(如果所有条目都是假的)然后通过删除来简化它。当然这取决于语言和编译器。但绝大多数情况下都不是这样,也不需要进行big-o分析。如果我们跟踪你,A的所有条目都是假的,那么运行时间将是0。计算几何,真的吗?理论上可能是,在实践中,一个智能特殊compiler可以证明此代码段永远无法输入(如果全部为false),然后通过删除来简化它。当然这取决于语言和编译器。但大多数情况下肯定不是这样,也不需要进行big-o分析。