Java 为什么当我们要水平/垂直旋转矩阵时,我们要将该项除以2?
我试着水平/垂直旋转矩阵,但不明白怎么做,在我搜索这里后,我发现每个人都将这个词除以2,我真的想知道为什么它如此重要,如果我不这样做,矩阵将保持不变, 我们将行划分为2的示例:Java 为什么当我们要水平/垂直旋转矩阵时,我们要将该项除以2?,java,arrays,for-loop,Java,Arrays,For Loop,我试着水平/垂直旋转矩阵,但不明白怎么做,在我搜索这里后,我发现每个人都将这个词除以2,我真的想知道为什么它如此重要,如果我不这样做,矩阵将保持不变, 我们将行划分为2的示例: int temp; for (int i = 0 ; i < getRows() / 2 ; i++) { for (int j = 0; j < getColumns() ; j++) { temp = _matrixArray[i][j]; _matrixA
int temp;
for (int i = 0 ; i < getRows() / 2 ; i++)
{
for (int j = 0; j < getColumns() ; j++)
{
temp = _matrixArray[i][j];
_matrixArray[i][j] = _matrixArray[_matrixArray.length - 1 - i][j];
_matrixArray[_matrixArray.length - 1 -i][j] = temp;
}
}
int-temp;
对于(int i=0;i
提前感谢。您在此处复制的代码通过第0行进行垂直反射。。。[n/2]并将它们与行[n/2]交换。。。n-1。我用括号[]表示四舍五入。那么,你看到循环只需要上升到[n/2]吗?希望我正确理解你的问题,我可以说原因是下一个:你从两个方向同时读取矩阵中的数据,从左到右(0到n/2)和从右到左(n到n/2+1),并逐步交换这两个方向(0表示n-1,1表示n-2,…,n-k表示n-k+1),因此,当您达到其大小的一半时,您将全部交换,这意味着您执行了旋转