当前位置: 代码迷 >> java >> 嵌套时运行时不循环的循环
  详细解决方案

嵌套时运行时不循环的循环

热度:76   发布时间:2023-07-25 19:39:30.0

以下代码是O(n ^ 2)还是O(n)?

int i=0, j=0;
while (i < n) {
  while (j < n) {
    j++;
  }
  i++;
}

由于内部while循环仅从0到n运行一次,我认为它相当于具有两个单独的while循环,因此总运行时间将为O(2n)。

在这个特定的代码片段中是O(n)。 例如,对于i = 0,n = 10,内循环从j = 0到j = 9(10次)执行,而对于i = 1到9,内循环执行0次,(因为j(10)> n(10)将永远不会变为真),所以总时间=外部10倍+内部10倍= 20 = 2n因此时间复杂度为O(n)

  相关解决方案