一、普通矩阵转换为稀疏矩阵

(1)遍历二维数组,得到数据数sum

(2)根据sum创建出稀疏矩阵sparseArr int[sum+1][3]

(3)将二维数组的有效值存入稀疏据矩阵

  public static int[][] toSparse(int[][] array){//1.遍历二维数组,得到数据数sumint sum=0;for (int arr[] : array){for (int item : arr){if (item != 0){sum++;}}}//2.根据sum创建出稀疏矩阵sparseArr int[sum+1][3]int[][] sparseArr = new int[sum+1][3];sparseArr[0][0] = array.length;sparseArr[0][1] = array[0].length;sparseArr[0][2] = sum;//3.将二维数组的有效值存入稀疏据矩阵int count = 0;//计数器for (int i=0;i<array.length;i++){for (int j=0;j<array[0].length;j++){if (array[i][j] != 0){count++;sparseArr[count][0] = i;sparseArr[count][1] = j;sparseArr[count][2] = array[i][j];}}}return sparseArr;}

二、稀疏矩阵转换为普通矩阵

(1)先读取稀疏矩阵的第一行,根据第一行的数据,创建原始的二维数组

(2)读取稀疏矩阵后几行的数据,复制给二维数组

   public static int[][] backArray(int[][] sparseArr) {//1.先读取稀疏矩阵的第一行,根据第一行的数据,创建原始的二维数组int[][] backArray = new int[sparseArr[0][0]][sparseArr[0][1]];//2.读取稀疏矩阵后几行的数据,赋值给二维数组for (int i=1;i<sparseArr.length;i++){backArray[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];}return backArray;}

二维数组与稀疏矩阵的转换相关推荐

  1. JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

    一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元 ...

  2. java 二维数据结构_JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

    一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元 ...

  3. java 稀疏数组和二维数组转换,并保存稀疏数组到文件后可以读取

    稀疏数组和二维数组转换 稀疏数组:当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方法: 记录数组一共有多少行,有多少个不同的值 把具有不同值得元素的行 ...

  4. openCV图像矩阵Mat和二维数组的互相转换

    openCV图像矩阵Mat和二维数组的互相转换 在openCV的应用中,我们获取图像的矩阵信息很简单.但是我们可能想调用其他的矩阵运算库(比如Eigen库)来进行计算.那么我们就需要把openCV读取 ...

  5. javascript二维数组转置_VBA数组拆分及维数的转换

    不以物喜,不以己悲,看庭前花开花落,宠辱不惊.淡然,是人生的最高境界,是对人生的态度,是一种风度,一种力量,一种原则.淡若清风,是现在需要的态度.静下心,为后疫情时代做知识的储备,后疫情时代将演绎一场 ...

  6. Java实现二维数组和稀疏数组的转换

    文章目录 稀疏数组 二维数组-->稀疏数组 稀疏数组-->二维数组 完整code 稀疏数组 简介:当编写的二维数组中存在很多不用的点但初始化时都赋值为0时,这个二维数组的观赏性很低并且非常 ...

  7. php 空二位数组,php对二维数组进行相关操作(排序、转换、去空白等),php二维数组_PHP教程...

    function printr($arr) { echo ''; print_r($arr); echo ' '; } 第一组 :sort 和 rsort,按照PHP数组键值的顺序asc和逆序desc ...

  8. C#数组维度转换:一维数组二维数组三维数组相互转换

    最近项目需要用到数组维度转换,网上资源较少,写一个分享与备用 1.一维数组转二维数组 /// <summary> /// 一维数组转2维数组(矩阵) /// </summary> ...

  9. javaSE--基础六(idea.debug,进制转换,二维数组)

    Debug调试 什么是Debug调试?Debug调试可以让我们看到程序的执行流程,和变量的变化情况如何完成Debug调试?1.打断点 (程序执行时,会停在断点的位置)在代码编辑区域的最左边,点一下即可 ...

最新文章

  1. C primer plus 练习题 第三章
  2. 全球及中国模具激光焊接机行业供需分析与投资战略研究报告2021-2027年版
  3. 八十八、Webpack打包工具
  4. 四十三 常用内建模块 base64
  5. python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库
  6. 浮栅场效应管 符号_场效应管主要参数与特点,场效应管与其他管子的对比
  7. (16)System Verilog联合体union详解
  8. Linux理论05:Linux的目录结构
  9. 阻止表单提交,超链接默认行为
  10. keepalived高可用配置注意事项
  11. com组件--GUID
  12. (转)CentOS系统启动流程图文详解
  13. ora01033是什么错误linux,ora-01033错误的解决办法
  14. 多源多目标统计信息融合 目标跟踪 信息融合 贝叶斯滤波总结
  15. jQuery 梁桐老师笔记 - 属性,CSS,文档处理
  16. python xgboost建模过程_python - Dask中的XGBoost建模 - SO中文参考 - www.soinside.com
  17. RecyclerView之利用ItemDecoration实现万能分割线
  18. oracle move不能操作分区,关于Oracle分区表的move操作
  19. H5移动端禁止长按保存图片
  20. 用python动态时钟代码_python实现简易动态时钟

热门文章

  1. 单片机用c语言编写测量波形频率和占空比,单片机测量方波的频率、占空比及相位差的方法...
  2. 什么是散列表(Hash Table)
  3. Nest.js模块机制的概念和实现原理
  4. WebRTC禁用NACK
  5. oracle的date_add,SQL Server 中add函数到 oracle date add的操作
  6. 2022年全球市场总线插头总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. JAVA 去除字符串首尾特定字符
  8. python写采集程序_python实现简易采集爬虫
  9. 什么是互联网大厂_请问22届应届毕业生应该如何准备互联网秋招?
  10. uni-app 中英文切换