请问有没有关于将一个2维数组旋转90度的算法?

Brunhild 2003-12-12 10:23:35
例如一个2维数组:
1,2,3
4,5,6
顺时针旋转90度后成为:
4,1
5,2
6,3
逆时针旋转后变成:
3,6
2,5
1,4
...全文
75 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dengsf 2003-12-14
写错一些。
a[i][m-1-j] 改为 a[m-1-j][i].

虽然已经结帖,但还是希望楼主能看到。
  • 打赏
  • 举报
回复
Brunhild 2003-12-12
矩阵的东西早就忘清光了,能不能给段代码或提示啊
  • 打赏
  • 举报
回复
lygfqy 2003-12-12
用线性代数中的矩阵转换即可
  • 打赏
  • 举报
回复
dengsf 2003-12-12
按错了,继续。下面是C伪码而已,编译肯定不过,只是说明问题而已。

//a 是原数组, m 是行数, n 是列数。
//顺时针转换 a[][],返回 b[][].
int[][] clockwise( int[][] a ,int m, int n )
{
int[][] b = new int(m*n);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
b[i][j] = a[i][m-1-j];
}
}
return b;
}
  • 打赏
  • 举报
回复
dengsf 2003-12-12
比较简单吧,应该不必用到矩阵,稍微观察一下就可以编码了。

设原矩阵为 A[M,N],则生成结果为 B[M,N],
我写写我时针的思路,逆时针类似。
  • 打赏
  • 举报
回复
相关推荐
发帖
数据结构与算法
加入

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-12-12 10:23
社区公告
暂无公告