二维数组转置(java实现)
打印出一个M行N列的二维数组的转置
一个二维数组a【M】【N】,如何实现转置呢?根据线性代数中矩阵转置的定义如下
由此我们可以简单的理解就是新建一个二维矩阵,把原来的行和列内容,转换到现在的列和行内容
由此,我们可以顺利编写出一下核心代码:
/**
* Transpose 2D Array
*/
int m = 5, n =6;
int[][] a = new int[m][n];
System.out.println("-------转置前-------");
for(int i = 0; i < a.length ; i++)
{
for(int j = 0; j < a[0].length; j++)
{
a[i][j] = i + j;
System.out.print(a[i][j]+" “);
}
System.out.println();
}
int[][] b = new int[n][m];
System.out.println(”------转置后------");
for(int i = 0; i < b.length; i++)
{
for(int j = 0; j < b[0].length; j++)
{
//转换
b[i][j] = a[j][i];
System.out.print(b[i][j]+" ");
}
System.out.println();
}
使用Idea编写得到结果: