Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么当我们要水平/垂直旋转矩阵时,我们要将该项除以2?_Java_Arrays_For Loop - Fatal编程技术网

Java 为什么当我们要水平/垂直旋转矩阵时,我们要将该项除以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

我试着水平/垂直旋转矩阵,但不明白怎么做,在我搜索这里后,我发现每个人都将这个词除以2,我真的想知道为什么它如此重要,如果我不这样做,矩阵将保持不变, 我们将行划分为2的示例:

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),因此,当您达到其大小的一半时,您将全部交换,这意味着您执行了旋转