失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 稀疏数组 稀疏矩阵概念

稀疏数组 稀疏矩阵概念

时间:2022-08-11 11:17:18

相关推荐

稀疏数组 稀疏矩阵概念

这两个所表达的意思都差不多,应该是同一个东西我查不到具体的解释两个差异的资料,如果你知道的话,欢迎留言

稀疏矩阵:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵(sparse matrix),该比值称为这个矩阵的稠密度。

稀疏数组:稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组

稀疏数组的首行输出 由数组的长宽及有效数据个数组成

接下来所输出的都是有效数据的坐标及数值。

public class 二维数组 {public static void main(String[] args) {//1.原始数据int chessArr[][]=new int [11][11];chessArr[1][2]=1;chessArr[2][3]=2;//2.转换成稀疏数组,计数遍历数组int sum = 0;for (int i = 0 ; i <11 ; i++){for (int j = 0 ; j <11 ; j++){if(chessArr[i][j]!=0){sum++;}}}int slimArr [][] = new int[sum+1][3];slimArr [0][1] = 11;slimArr [0][0] = 11;slimArr [0][2] = sum;int count = 1;for (int i = 0 ; i <11 ; i++){for (int j = 0 ; j <11 ; j++){if(chessArr[i][j]!=0){slimArr[count][0] = i;slimArr[count][1] = j;slimArr[count][2] = chessArr[i][j];count++;}}}System.out.println("稀疏数组:");for(int i = 0 ; i<slimArr.length;i++){System.out.print(slimArr[i][0]+"\t"+slimArr[i][1]+"\t"+slimArr[i][2]);System.out.println();}//3.转换成原始数据int chessArr2[][] = new int[slimArr[0][0]][slimArr[0][1]];for (int i=1 ; i<slimArr.length; i++){chessArr2[slimArr[i][0]][slimArr[i][1]] = slimArr[i][2];}System.out.println("原始数据:");for (int [] row : chessArr2){for(int data : row){System.out.print(data+"\t");}System.out.println();}}}

输出结果

数组有11行,11列,两个有效数据

第一个数据:1 坐标(1,2)

第二个数据:2 坐标(2,3)

如果觉得《稀疏数组 稀疏矩阵概念》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。