Java 复杂的嵌套循环O(n+;m)?

Java 复杂的嵌套循环O(n+;m)?,java,algorithm,loops,Java,Algorithm,Loops,我不太明白这个循环是如何工作的: for(int i = 0, j = 0; i < n; i++){ for(; j < m; j++){ for(int i=0,j=0;i

我不太明白这个循环是如何工作的:

 for(int i = 0, j = 0; i < n; i++){
        for(; j < m; j++){
for(int i=0,j=0;i
更合适的例子

int arr[] = {1, 2, 3, 4, 5, 6, 7};
int arr1[] = {7, 6, 5, 4, 3, 2, 1};
for (int i = 0, j = 0; i < n; i++) {
  for (; j < m; j++) {
    if (arr[i] + arr1[j] < 0) break;
    if (arr[i] + arr1[j] > max) max = arr[i] + arr1[j];
  }
}
intarr[]={1,2,3,4,5,6,7};
int arr1[]={7,6,5,4,3,2,1};
对于(int i=0,j=0;imax)max=arr[i]+arr1[j];
}
}
当循环开始时,它们同时工作吗?像这样的[[1+7][2+6][3+5]等等……],意味着当它增加时,它们都会相加

还是像嵌套循环一样工作

如果我们在第二个循环中中断或继续,会发生什么?
非常详细和更多的信息和解释将不胜感激

这是一个带有内循环和外循环的嵌套循环。内循环的变量在外循环中初始化。这是非常罕见的。如果您不确定它的行为,那么您可以在这里或那里打印一些内容到
系统.out

它递增(i=0,j=0),(i=0,j=1),…,(i=0,j=m),(i=1,j=0),…如果在内部循环中中断或继续,则它将继续(i+1,j),因为j未重置为0


因此,时间复杂度是O(n*m)。

复杂度将是O(n+m),因为内循环只运行一次,j不会重置为0。

“如果在内循环中中断或继续,它将继续(i+1,0)。”不,下一次迭代将从
(i+1,j)
,因为
j
不会重置为零。