Big-O表示法-嵌套相关循环

时间:2019-03-29 12:00:10

标签: loops time big-o complexity-theory

在获取以下嵌套的for循环的时间复杂度时,我遇到了麻烦/怀疑:

我可以在最内层的循环中进行优化/读取更改,这将删除+ 1-1部分,但这不应成为我计算的一个因素。

我知道嵌套循环的复杂性会成倍增加。现在,计算结束了,我不知道是否由于i循环n-2次,是否应将我的结果替换为(n-2)?关于中间循环的相同问题,我应该用(k-m * i + m)代替j吗?

由于我还不能发布图像,因此将其链接放在此处,并将其复制并粘贴到下面(for循环和我的计算):

        for(int i = 1; i < n; i++){
            for(int j = ((m+1)*(i-1)) + 1; j < k; j++){
                for(int h = (m+1)*(i-1); h < (j-m+1)-1; h++){ 
                }
            }
        }


Inner most loop    
  (j-m-1 - 1) - ((m+1)*(i-1))     =
= (j-m-1 - 1) - (m*i - m + i - 1) =
= j - m - 1 - 1 - m*i + m - i + 1 =
= j - m*i - 1

2º Inner most loop
  (k - 1) - ((m+1)*(i-1))     =
= (k - 1) - (m*i - m + i - 1) =
= k - 1 - m*i + m - i + 1     =
= k - m*i + m                 

Outer loop
  n - 1 - 1 = 
= n - 2

Result
  (j - m*i) * (k - m*i + m) * (n)                     =
= (j*k - j*m*i + j*m - m*i*k + (m*i)^2 - (m^2)*i) * n

图片:https://imgur.com/a/40eIlDj

感谢您的关注

0 个答案:

没有答案