三维矩阵遍历Big-O

三维矩阵遍历Big-O,big-o,complexity-theory,time-complexity,pseudocode,Big O,Complexity Theory,Time Complexity,Pseudocode,我对这两种算法的大O的尝试 1算法三矩阵,n //大小为n x n x n的三维矩阵 layer ← 0 while (layer < n) row ← 0 while (row < layer) col ← 0 while (col < row) print matrix[layer][row][col] col ← col + 1

我对这两种算法的大O的尝试

1算法三矩阵,n

//大小为n x n x n的三维矩阵

layer ← 0 
while (layer < n)
     row ← 0 
     while (row < layer) 
           col ← 0 
           while (col < row) 
               print matrix[layer][row][col] 
               col ← col + 1 
       done 
       row ← row + 1 
  done 
  layer ← layer * 2 
done
在^2logn上,因为两个外部循环都处于打开状态,而最内部的循环似乎是Olog n

2算法Magicn

//整数,n>0

i ← 0 
while (i < n) 
     j ← 0 
     while (j < power(2,i)) 
          j ← j + 1 
    done 
    i ← i + 1 
done
外回路为ON,内回路为O2^n?=在2^n?

1。算法 首先:该算法永远不会终止,因为层是以零开始的。层只被2乘以,所以它永远不会大于零,特别是不大于n。 要完成这项工作,必须从图层>0开始

让我们从layer=1开始

时间复杂度可以写成Tn=Tn/2+n^2。 您可以这样看:在最后,层最多设置为n。然后内部循环执行n^2步。贝弗,那层只有一半那么大。因此,你必须在外环的最后一圈上做n^2步,并将贝弗·维尔滕圆的所有步数作为Tn/2

你可以得到θ^2

2.算法 您只需计算步骤:

2^0 + 2^1 + 2^2 + ... + 2^(n-1) = sum_(i=0)^(n-1)2^i = 2^n-1
要得到这种简化,只需看看二进制数:步骤之和对应于一个只包含1的二进制数,如1111111。这个数字等于2^n-1

所以时间复杂度是θ2^n

注意:两个大O都没有错,有更好的边界