实现方阵自身的转置(不额外开辟空间)
时间: 2023-06-19 21:09:02 浏览: 180
方阵转置aij∽aji-C语言入门教程
方阵自身的转置可以通过原地交换元素实现,具体方法如下:
1. 遍历方阵的上三角部分(不包括对角线),对于每个元素 matrix[i][j],将其与 matrix[j][i] 进行交换。
2. 如果方阵的维度为奇数,则需要对角线上的元素进行特殊处理,将其保留不动。
下面是一个 C++ 的示例代码:
```c++
void transpose(vector<vector<int>>& matrix) {
const int n = matrix.size();
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
swap(matrix[i][j], matrix[j][i]);
}
}
}
```
这个算法的时间复杂度为 O(n^2),空间复杂度为 O(1)。
阅读全文