java实现矩阵转置,即将矩阵的行、列互换,一个m行n列的矩阵将转换为n 行m列。
时间: 2024-10-12 10:09:04 浏览: 145
Java程序求矩阵转置.docx
在Java中,我们可以使用二维数组来表示矩阵,并通过两种常见的方式实现矩阵的转置:
1. **直接遍历交换元素**:
首先创建一个新的n行m列的二维数组作为结果,然后遍历原矩阵,依次将每一行的元素复制到新矩阵的对应列上。
```java
public int[][] transpose(int[][] matrix) {
if (matrix == null || matrix.length == 0) return new int[0][0];
int m = matrix.length;
int n = matrix[0].length;
int[][] transposed = new int[n][m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
transposed[j][i] = matrix[i][j]; // 交换行列位置
}
}
return transposed;
}
```
2. **使用双指针法**:
这种方法利用两个指针,一个从左到右扫描原矩阵的行,另一个从上到下扫描原矩阵的列。逐个交换它们指向的元素。
```java
public int[][] transpose(int[][] matrix) {
if (matrix == null || matrix.length == 0) return new int[0][0];
int m = matrix.length;
int n = matrix[0].length;
int[][] transposed = new int[n][m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < i; j++) { // 只需交换前半部分,因为对角线及以后不需要交换
transposed[j][i] = matrix[i][j];
transposed[i][j] = matrix[j][i]; // 交换
}
}
return transposed;
}
```
阅读全文