矩阵原地旋转90度算法
时间: 2025-06-04 16:46:47 浏览: 17
### 关于矩阵原地旋转90度的算法实现
对于矩阵的原地旋转操作,特别是顺时针方向旋转90度的情况,可以采用分层交换的方法来完成这一变换。具体来说,在不借助额外空间的情况下,通过逐层处理的方式,将外层元素按顺序移动到它们新的位置上。
考虑到一个n×n大小的二维数组matrix,为了将其逆时针旋转90度,则可以通过如下方式:
1. 首先遍历每一圈(即最外面一圈、次外面一圈...直到中心),每圈分为四个边;
2. 对每一个边上除最后一个元素之外的所有元素执行循环移位;
下面给出Python语言的具体代码示例[^1]:
```python
def rotate(matrix):
n = len(matrix)
for layer in range(n // 2):
first, last = layer, n - layer - 1
for i in range(first, last):
offset = i - first
# Save top element
top = matrix[first][i]
# Move left element to top
matrix[first][i] = matrix[last-offset][first]
# Move bottom element to left
matrix[last-offset][first] = matrix[last][last-offset]
# Move right element to bottom
matrix[last][last-offset] = matrix[i][last]
# Assign saved top element to right
matrix[i][last] = top
return matrix
```
此函数接收一个方阵作为输入参数,并对其进行就地修改以达到顺时针旋转的效果。注意这里假设给定的是正方形矩阵,如果不是的话则需要提前调整行列数使之相等再做相应变化。
阅读全文
相关推荐


















