将长宽相等的矩阵(二维数组)逆时针旋转90度,例如,有如下一个二维数组

00 10 20 30 40 50 60
01 11 21 31 41 51 61
02 12 22 32 42 52 62
03 13 23 33 43 53 63
04 14 24 34 44 54 64
05 15 25 35 45 55 65
06 16 26 36 46 56 66  

将其逆时针旋转90度,一种比较快捷的方法是通过两次位置调换即可:

第一步,将矩阵沿着自“左上”到“右下”的对角线对调,可得到如下的对调之后的二维数组:

00 01 02 03 04 05 06
10 11 12 13 14 15 16
20 21 22 23 24 25 26
30 31 32 33 34 35 36
40 41 42 43 44 45 46
50 51 52 53 54 55 56
60 61 62 63 64 65 66  

第二步,将矩阵上下行对调,即第一行与倒数第一行对调,第二行与倒数第二行对调,依次类推,可得到如下最终版的二维数组(也即原始二维数组逆时针旋转90度的数组):

60 61 62 63 64 65 66
50 51 52 53 54 55 56
40 41 42 43 44 45 46
30 31 32 33 34 35 36
20 21 22 23 24 25 26
10 11 12 13 14 15 16
00 01 02 03 04 05 06  

相关的java版小测试程序为:

public class Test {
public static void main(String[] args) {
String m_TestData[][] = {
{"00","10","20","30","40","50","60"},
{"01","11","21","31","41","51","61"},
{"02","12","22","32","42","52","62"},
{"03","13","23","33","43","53","63"},
{"04","14","24","34","44","54","64"},
{"05","15","25","35","45","55","65"},
{"06","16","26","36","46","56","66"}
};
int iX, iY;
String tmpData;
int m_iHeight = 7;
int m_iWidth = 7;
System.out.println("原始数据:");
for(iY=0;iY<m_iHeight; ++iY){
for(iX=0; iX<m_iWidth; ++iX)
System.out.print(m_TestData[iY][iX] + " ");
System.out.println(" ");
}
for(iY=0; iY<m_iHeight; ++iY){
iX= iY;
for(; iX<m_iWidth; ++iX){
tmpData = m_TestData[iY][iX];
m_TestData[iY][iX] = m_TestData[iX][iY];
m_TestData[iX][iY] = tmpData;
}
}
System.out.println("对角调换之后的数据:");
for(iY=0;iY<m_iHeight; ++iY){
for(iX=0; iX<m_iWidth; ++iX)
System.out.print(m_TestData[iY][iX] + " ");
System.out.println(" ");
}
for(iY=0; iY<m_iHeight/2; ++iY){
for(iX=0; iX<m_iWidth; ++iX){
tmpData = m_TestData[iY][iX];
m_TestData[iY][iX] = m_TestData[m_iHeight-iY-1][iX];
m_TestData[m_iHeight-iY-1][iX] = tmpData;
}
}
System.out.println("上下对调之后的数据:");
for(iY=0;iY<m_iHeight; ++iY){
for(iX=0; iX<m_iWidth; ++iX)
System.out.print(m_TestData[iY][iX] + " ");
System.out.println(" ");
}
}
}

长宽相等的矩阵(二维数组)逆时针旋转90度相关推荐

  1. python将二维数组逆时针旋转45°

    #二维数组逆时针旋转45° def rotate(array):if array==None:return 0length=len(array)#右上角输出i=length-1while i>0 ...

  2. 数组逆时针旋转 90 度

    下面程序的功能是将一个 4×4 的数组进行逆时针旋转 90 度后输出,要求原始数组的数据随机输入,新数组以 4 行 4 列的方式输出

  3. C语言_将 4×4 的数组逆时针旋转 90 度后输出

    时间:2020年9月6日 16:27:00 /*下面程序的功能是将一个 4×4 的数组进行逆时针旋转 90 度后输出, 要求原始数组的数据随机输入,新数组以 4 行 4 列的方式输出, 请在空白处完善 ...

  4. C/C++二维数组顺时针翻转90度

    题目来源 c语言网:https://www.dotcpp.com/oj/problem2308.html 图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时 针旋转 90 度. 我们用一 ...

  5. 7-6二维数组-右转90度(10分)

    题目: 将n行n列矩阵,顺时针旋转后,输出 输入格式: 第一行输入整数n,m空格分隔,然后输入n行m列个整数. 输出格式: 顺时针旋转后输出矩阵,每个数据后加个空格 输入样例: 在这里给出一组输入.例 ...

  6. Python 矩阵顺时针逆时针旋转90度

    前言 Python中对矩阵进行顺时针或者逆时针旋转90度操作 程序 矩阵: matrix = [[1,2,3],[4,5,6],[7,8,9]] matrix 结果: [[1, 2, 3], [4, ...

  7. python 对 list[list] 矩阵进行逆时针旋转90度 matrix = list(map(list, zip(*matrix)))[::-1]

    思路源于:Leetcode的螺旋矩阵题解 - Sui Xin 对于一个矩阵如下. matrix = [[1,2,3],[4,5,6],[7,8,9] ] 将其逆时针旋转90度为如下形式. res = ...

  8. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序

    假设我们有一个正方形矩阵,我们必须将其逆时针旋转90度.147 258 369 那么输出将是789 456 1个23 为了解决这个问题,我们将遵循以下步骤-如果矩阵为空,则返回一个空白列表 n:=矩阵 ...

  9. matlab矩阵逆时针旋转90度

    f=fenbu%f是原来的矩阵 newf = ones(size(f'))%旋转后的矩阵 lieshu = size(f,1)for j=[1:size(f,2)]%列数for i=[1:size(f ...

最新文章

  1. HTML在计算机中指什么,计算机正在执行的指令存放在什么中
  2. D3D中的粒子系统(1)
  3. Working context and Functional profile
  4. mysql 免安装初始化_mysql免安装版配置步骤详解分享
  5. Project Student:维护Webapp(可编辑)
  6. php mysql 分行执行,php执行mysql存储及执行脚本
  7. 服务器编译linux内核时间,Firefly-RK3399 Linux内核编译
  8. 检测工控设备SNMP漏洞工具:SNMP Fuzzer
  9. Hive的下载,安装,配置以及连接的非常详细的过程
  10. 物联网和工业物联网有什么区别?
  11. 孩子沉迷网游 呼唤亲子陪伴教育
  12. ios开发 服务器通信协议,iOS开发网络篇—HTTP协议
  13. WorldView卫星遥感影像数据/米级分辨率遥感影像
  14. 保存富文本编辑器内容
  15. 没有学历学了JAVA怎么找份工作_自学java没学历可以找到工作嘛?
  16. USB调试时出现“because an app is obscuring a permission request settings cab't verify your resonse”问题
  17. 解析HTTPS加密原理
  18. 如何快速地向服务器传大文件,大文件如何快速传输
  19. C语言总结这一篇就够了(不收藏必后悔系列)
  20. 艾里光束matlab_减速圆艾里光束的产生及其聚焦特性

热门文章

  1. 2020 Oracle JDK下载
  2. Spark入门实战系列--4.Spark运行架构
  3. 关于windows重装原先wubi安装的Ubuntu启动项消失的解决办法
  4. python的多线程应用前景_什么是线程(多线程),Python多线程的好处
  5. nodejs html引用js_nodejs做出最简单的网页服务端。【501】
  6. python字符串截取split 失败_python如何截断字符串
  7. java源代码连接jsp,java网络五子棋的源代码-JSP教程,Java技巧及代码
  8. 子程序调用与宏定义的异同_冒泡排序_汇编语言的子程序调用与宏定义实现
  9. android 功能清单文件夹,全新Android L大小全部功能清单整理
  10. 目前服务器操作系统版本,目前服务器操作系统版本号