C++ 中矩陣的行遍歷與列遍歷
矩陣可以以兩種方式遍歷。行遍歷從第一行開始,依次訪問每一行,直到最後一行。一行中的元素從索引 0 返回到最後一個索引。
在列遍歷中,元素按順序從第一列遍歷到最後一列。
在二維矩陣 M[i][j] 中。索引 i 用於表示行,索引 j 用於表示列。對於行遍歷,從
i=第 0 行 和 0<=j<最後一個索引
i=第 1 行 和 0<=j<最後一個索引
.....
i=最後一行 和 0<=j<最後一個索引
對於列遍歷,從
j=第 0 列 和 0<=i<最後一個索引
j=第 1 列 和 0<=i<最後一個索引
.....
j=最後一列 和 0<=i<最後一個索引
索引的順序在二維陣列 M[i][j] 中保持不變 - i 用於行,j 用於列
示例
輸入 −
int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0}, {5,4,3,2,1},{0,0,0,0,0}, {8,9,7,6,1}};
輸出 −
Row Major Traversal 1 2 3 4 5 6 7 8 9 0 5 4 3 2 1 0 0 0 0 0 8 9 7 6 1 Column Major Traversal 1 6 5 0 8 2 7 4 0 9 3 8 3 0 7 4 9 2 0 6 5 0 1 0 1
說明 −輸出不言自明
輸入 −
int arr[MAX][MAX] = { {1,1,1,1,1},{2,2,2,2,2}, {3,3,3,3,3},{4,4,4,4,4}, {5,5,5,5,5}};
輸出 −
Row Major Traversal 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 Column Major Traversal 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
說明 − 輸出不言自明。
下面程式中使用的方法如下
在這種方法中,我們使用兩個 for 迴圈來列印輸入的二維矩陣,分別進行行遍歷和列遍歷。
獲取輸入陣列 arr[][] 來表示二維矩陣。
獲取變數 i 和 j 作為行元素和列元素的索引。
對於行遍歷,從索引 i=0 開始到 i<MAX 的 for 迴圈,逐行遍歷
在其中,從 j=0 開始到 j<MAX 的巢狀 for 迴圈,遍歷第 i 行的所有元素。
列印 arr[i][j]
對於列遍歷,從索引 j=0 開始到 j<MAX 的 for 迴圈,逐列遍歷
在其中,從 i=0 開始到 i<MAX 的巢狀 for 迴圈,遍歷第 j 列的所有元素。
列印 arr[i][j]。
示例
#include <bits/stdc++.h> using namespace std; #define MAX 5 int main(){ int arr[MAX][MAX] = { {1,2,3,4,5},{6,7,8,9,0},{5,4,3,2,1},{0,0,0,0,0},{8,9,7,6,1}}; int i, j; cout<<"Row Major Traversal "<<endl; for(i=0;i<MAX;i++){ cout<<endl; for(j=0;j<MAX;j++){ cout<<" "<<arr[i][j]; } } cout<<endl<<endl; cout<<"Column Major Traversal "<<endl; for(j=0;j<MAX;j++){ cout<<endl; for(j=0;j<MAX;j++){ cout<<" "<<arr[j][i]; } } return 0; }
輸出
如果我們執行上面的程式碼,它將生成以下輸出
Row Major Traversal 1 2 3 4 5 6 7 8 9 0 5 4 3 2 1 0 0 0 0 0 8 9 7 6 1 Column Major Traversal 6 5 0 8 3 2 7 6 4
廣告