簡體   English   中英

2d數組之間的區別

[英]the difference between 2d array

我想知道2D數組中這些循環之間的區別是什么:

for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--) {
    ...
}


for(int r=row-1;r>=0;r--){    
    for(int c=column-1;c>=0;c--){
        ...
    }
}
for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--)

第一個例子是一個循環,它在每個循環中遞減rc ,這意味着索引rc將從array[row-1][column-1]開始繪制對角線。 在此輸入圖像描述

for(int r=row-1;r>=0;r--){
    for(int c=column-1;c>=0;c--){

第二個例子為每個行索引調用一個循環,所以它將訪問所有索引array[r][c]
在此輸入圖像描述

我假設您要求單個外部循環和嵌套循環之間的區別。 不同之處在於單個循環將遍歷2D數組的對角線和嵌套循環,迭代遍歷數組的每個索引。 例如,如果有6行和4列,則:

for (int r = row - 1, c = column - 1; r >= 0 && c >= 0; r--, c--) { 
     System.out.println(r + " " + c);
}

會產生:

5 3
4 2
3 1
2 0

而嵌套循環

for(int r=row-1; r>=0; r--) {
    for(int c=column-1; c>=0; c--) {
        System.out.println(r + " " + c);
    }
}

會屈服

5 3
5 2
5 1
5 0
4 3
4 2
4 1
4 0
3 3
3 2
3 1
3 0
2 3
2 2
2 1
2 0
1 3
1 2
1 1
1 0
0 3
0 2
0 1
0 0

第一次迭代n次,其中nrowcolumn 第二次迭代m次,其中mrow * column 那是

Math.min(row, column)

row * column

分別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM