千家信息网

Java如何实现二维数组与稀疏数组互转

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍了Java如何实现二维数组与稀疏数组互转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java如何实现二维数组与稀疏数组互转文章都会有所收获,下面我们一起
千家信息网最后更新 2025年02月01日Java如何实现二维数组与稀疏数组互转

这篇文章主要介绍了Java如何实现二维数组与稀疏数组互转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java如何实现二维数组与稀疏数组互转文章都会有所收获,下面我们一起来看看吧。

    二维数组

    二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

    稀疏数组

    1、稀疏算法的基本介绍

    当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。从而减少计算机不必要的内存开销。

    2、稀疏算法的处理方式

    (1)数组中第一行记录原始数组中一共有几行几列,有多少个不同的值。
    (2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。

    二维数组转稀疏数组的思路

    • 遍历原始的二维数组,得到有效数据的个数sum,根据sum就可以创建稀疏数组sparseArr int[sum+1][3]

    • 将二维数组的有效数据存入到稀疏数组

    稀疏数组转原始的二维数组的思路:

    • 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的chessArr2=int[11][11]

    • 再读取稀疏数组后几行的数据,并赋给原始的二维数组即可

    写一个二维数组:

    //1.创建一个二维数组int chessArr1[][]=new int[11][11];//2.给二维数组赋值chessArr1[1][2]=1;chessArr1[2][3]=2;//3.双重for循环输出二维数组System.out.println("原始的二维数组:");for (int[] row : chessArr1) {    for (int data : row) {        System.out.printf("%d\t",data);    }    //每输出完一个一重数组换一行    System.out.println();}

    将二维数组换换位稀疏数组

    //将二维数组转稀疏数组//1.先遍历二维数组,得到非0数据的个数,知道数据个数,就可以创建稀疏数组(知道了稀疏数组的行)int sum=0;for (int i = 0; i < 11; i++) {    for (int j = 0; j < 11; j++) {        if (chessArr1[i][j]!=0){            sum++;        }    }}System.out.println("有效值的个数为:"+sum);//2.创立对应的稀疏数组int sparseArr[][]=new int[sum+1][3];//3.给稀疏数组赋值sparseArr[0][0]=11;sparseArr[0][1]=11;sparseArr[0][2]=sum;//4.遍历二维数组,给稀疏数组int count=0;//用于记录是第几行for (int i = 0; i < 11; i++) {    for (int j = 0; j < 11; j++) {        if (chessArr1[i][j]!=0){            sparseArr[count+1][0]=i;            sparseArr[count+1][1]=j;            sparseArr[count+1][2]=chessArr1[i][j];            count++;        }    }}//5.输出稀疏数组//以下是两种遍历方式:/*for (int[] ints : sparseArr) {    for (int anInt : ints) {        System.out.printf("%d\t",anInt);    }    //把一个数组遍历完之后换一行    System.out.println();}*/System.out.println("得到稀疏数组为~~~~~");for (int i = 0; i < sparseArr.length; i++) {    System.out.printf("%d\t%d\t%d\t\n",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);}

    将稀疏数组还原为二维数组

    //把稀疏数组还原为二维数组//1.创建二维数组int chessArr2[][]=new int[sparseArr[0][0]][sparseArr[0][1]];//2.给二维数组赋值for (int i = 1; i < sparseArr.length; i++) {    chessArr2[sparseArr[i][0]][sparseArr[i][1]]=sparseArr[i][2];}//3.输出二维数组for (int[] row : chessArr2) {    for (int data : row) {        System.out.printf("%d\t",data);    }    System.out.println();}

    树越是向往高处的光亮,它的根就越要向下,向泥土向黑暗的深处。

    关于"Java如何实现二维数组与稀疏数组互转"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Java如何实现二维数组与稀疏数组互转"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    数组 二维 稀疏 原始 数据 一行 个数 元素 矩阵 输出 有效 知识 不同 内容 对角 常量 思路 方式 方阵 算法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 兼职软件开发师招聘词怎么写 网络安全法律法规宣贯主题 网络技术学院考研方向 如何备份一个数据库的表结构 网络技术应用 教材 浩渺网络技术有限公司 人民法院网络安全培训 数据库应用技术性考任务五 数据怎么自动备份上传服务器 修改数据库一个用户的密码 网络安全我的故事五百字左右 网络技术与应用好找工作吗 网络安全之渗透安全 服务器查本机ip 网络技术学习好物分享 陕西有网络安全专业的学校 山东网络安全审计硬件设备价格 把服务器关掉 数据库支持大小写 mysql数据库运用例子 CAE软件开发公司 检察院网络安全检查自查 安徽数据网络技术服务价格 网络安全海报制作教程ps 山东微派网络技术有限公司 秦皇岛旅游信息资源数据库 非油气数据库检查任务创建失败 中国网络安全方面的成绩 监控服务器的别名 网络安全常见面试题操作题
    0