数组字符串系列之,将矩阵逆时针旋转90度,要求使用最少的额外空间

来源:互联网 发布:网络与新媒体专业好吗 编辑:程序博客网 时间:2024/05/19 20:39

一张图像存成n*n的矩阵,每个元素占四个字节,写一个函数将其逆时针旋转90度,原地操作。

//第一步,img[i][j]和img[j][i]互换,实现第i行变为第i列//第二步,扫描每一列(j),将img[i][j]与img[N-1-i]互换void rotation(int **img, int n)   //img[][]不可以作为形参{for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i<j){int temp = *((int*)img+i*n+j);   //img[i][j]转为*((int*)img+i*n+j)*((int*)img+i*n+j) = *((int*)img+j*n+i);*((int*)img+j*n+i) = temp;}}}for(int j=0;j<n;j++){for(int i=0;i<n-1-i;i++){int temp = *((int*)img+i*n+j);*((int*)img+i*n+j) = *((int*)img+(n-1-i)*n+j);*((int*)img+(n-1-i)*n+j) = temp;}}}

0 0
原创粉丝点击