小编Ron*_*acF的帖子

确定程序的时间和空间复杂度

因此,我在实习中遇到了编码挑战,其中一部分是确定我的程序的空间和时间复杂性。程序大致如下。

while(A){
  int[][] grid;
  // additional variables

 while(B){ //for loop involves iterating through grid
  // additional variables
  for(...) 
    for(....)
 }

  for(...) //for loop involves iterating through grid
    for(....)
}
Run Code Online (Sandbox Code Playgroud)

所以我说的是,程序总体的时间复杂度为 (A N^2+B N^2),因此得出结论,它的摊余时间为 O(N^2)。

至于空间复杂度,我是否应该将所有变量使用的数字空间相加?假设每个变量都是 int,并且循环 A 中有 3 个变量,循环 B 中有 2 个变量,那么空间复杂度是 (A*24 + B*16)?

java algorithm big-o time-complexity space-complexity

2
推荐指数
1
解决办法
910
查看次数