当前位置: 首页 > news >正文

搭建英文网站合肥网站制作需

搭建英文网站,合肥网站制作需,哈尔滨网站建设平台,重庆市建设工程招标投标交易信息网二维数组的旋转与翻转(C) 引言 在计算机科学中,二维数组是一种常见的数据结构,广泛应用于图像处理、数据挖掘、机器学习等多个领域。二维数组的旋转与翻转是处理二维数据时经常需要用到的操作。本文将详细介绍二维数组的旋转与翻…

二维数组的旋转与翻转(C++)

引言

在计算机科学中,二维数组是一种常见的数据结构,广泛应用于图像处理、数据挖掘、机器学习等多个领域。二维数组的旋转与翻转是处理二维数据时经常需要用到的操作。本文将详细介绍二维数组的旋转与翻转的原理及其在C++中的实现方法。

二维数组旋转

旋转原理

二维数组的旋转实质上是对数组元素坐标的变换。对于一个 n×n 的二维数组,我们可以将其视为一个正方形网格。旋转操作可以分为顺时针旋转90度、180度、270度。

顺时针旋转90度

  • 坐标变换: 假设原始数组中的元素位于 (i, j) 位置,旋转后的新位置将是 (j, n-1-i)

  • 步骤:

    1. 首先,将数组沿主对角线(从左上角到右下角的对角线)进行对称变换。

    2. 然后,对变换后的数组每一行进行水平翻转。

void Rotate90(vector<vector<int>>& matrix) {int n = matrix.size();// Step 1: Transpose the matrix along the main diagonal.for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {swap(matrix[i][j], matrix[j][i]);}}// Step 2: Reverse each row.for (int i = 0; i < n; ++i) {reverse(matrix[i].begin(), matrix[i].end());}
}

顺时针旋转180度

  • 坐标变换: 原始位置 (i, j) 旋转后的新位置将是 (n-1-i, n-1-j)

  • 步骤:

    1. 直接对数组进行两次90度旋转即可实现180度旋转。

void Rotate180(vector<vector<int>>& matrix) {Rotate90(matrix);Rotate90(matrix);
}

顺时针旋转270度

  • 坐标变换: 原始位置 (i, j) 旋转后的新位置将是 (n-1-j, i)

  • 步骤:

    1. 直接对数组进行一次90度旋转即可实现270度旋转。

void Rotate270(vector<vector<int>>& matrix) {Rotate90(matrix);
}

二维数组翻转

翻转原理

二维数组的翻转主要包括水平翻转、垂直翻转以及沿对角线翻转。

水平翻转

  • 坐标变换: 原始位置 (i, j) 翻转后的新位置将是 (i, n-1-j)

  • 步骤:

    1. 对数组的每一行进行水平翻转。

void FlipHorizontal(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < n; ++i) {reverse(matrix[i].begin(), matrix[i].end());}
}

垂直翻转

  • 坐标变换: 原始位置 (i, j) 翻转后的新位置将是 (n-1-i, j)

  • 步骤:

    1. 对数组的整体进行垂直翻转。

void FlipVertical(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < n / 2; ++i) {for (int j = 0; j < n; ++j) {swap(matrix[i][j], matrix[n - 1 - i][j]);}}
}

沿对角线翻转

  • 坐标变换: 原始位置 (i, j) 翻转后的新位置将是 (j, i)

  • 步骤:

    1. 对数组进行转置。

void FlipDiagonal(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {swap(matrix[i][j], matrix[j][i]);}}
}

总结

通过对二维数组进行旋转和翻转的操作,我们可以更加灵活地处理图像和其他二维数据。在实际应用中,这些操作往往需要结合具体的业务场景来进行优化,以提高效率和减少资源消耗。希望本文的内容能够帮助大家更好地理解和掌握二维数组的旋转与翻转技术。

http://www.yayakq.cn/news/840319/

相关文章:

  • 唐山网站从哪里找wordpress 单页海报
  • 做网站如何防止被骗潍坊网站空间
  • 安徽义信建设网站网站服务器怎么做的
  • asp学校网站系统做百度移动网站排名
  • 广东建设信息网站wordpress超时退出
  • 微网站移交淘宝优惠券怎么做网站
  • 地下城钓鱼网站如何做有名做网站公司
  • 打开一张图片后点击跳转到网站怎么做的广州网上注册公司网站
  • 高权重网站收录问题wordpress自动备份数据库
  • 哈尔滨有网站的公司seo外包公司兴田德润官方地址
  • 青海汽车网站建设服装企业 北京 网站建设
  • 电子商务网站建设规划的内容成都公司注册多少钱
  • 做网站 excel教做网站视频
  • 网站推广律师关键词有哪些笔记本电脑做网站比较畅快
  • vs2017做的网站如何发布喜迎二十大
  • 对网站二次开发的认识黄村网站建设一条龙
  • html5 爱情网站模板商城网站html
  • 有专门做最佳推荐的网站深圳网站建设网页推广网站设计
  • 建设网站公开教学视频网站网址怎么写
  • 建立网站的基本流程有哪些步骤网页设计的网网页设计的网站
  • 在线生成网站地图网站上面如何加入视频
  • 河东做网站的公司慧聪网官网首页
  • 推荐专业的外贸建站公司怎么营销推广
  • wordpress文章站主题做木箱的网站
  • 500m主机空间能做视频网站吗兰州一刀切防疫曝光
  • 创建一家公司的步骤seo短视频新地址在哪里?
  • 网站建设语言网站建设运营合同范本
  • 个人做游戏网站wordpress仿seowhy基础指南模板
  • 镜像别人网站做排名的好处企业平台网站建设
  • 大兴区网站建设在智联招聘网站做销售