稀疏矩阵的三元组存储算法

来源:互联网 发布:mac怎么输入罗马数字 编辑:程序博客网 时间:2024/05/16 23:44

稀疏矩阵,是零元素较多的矩阵。

一般只要满足(t+1)*3<=m*n,t是非零元素个数,mn是矩阵行列数,就可以用三元组表示稀疏矩阵,可以节省空间。

稀疏矩阵的压缩存储采用三元组的方法实现。其存储规则是:每一个非零元素占一行,每行中包含非零元素所在的行号、列号、非零元素的数值。为完整描述稀疏矩阵,一般在第一行描述矩阵的行数、列数和非零元素总个数。

首先应将稀疏矩阵转换为三元组存储,然后再利用三元组的存储,实现对矩阵的各种运算。

public class xishuArray {public static void main(String[]args){int[][]data={{0,0,0,0,0,0},{0,3,0,0,0,0},{0,4,0,0,0,0},{0,0,9,0,0,0},{0,0,0,0,0,0}};int i,j;int index=0;int[][] arr=new int[4][3];for( i=0;i<data.length;i++){for( j=0;j<data[0].length;j++){if(data[i][j]!=0){index++;arr[index][2]=data[i][j];arr[index][0]=i;arr[index][1]=j;//index++;}}}arr[0][0]=data.length;arr[0][1]=data[0].length;arr[0][2]=index;for(int y=0;y<arr.length;y++){for(int z=0;z<arr[0].length;z++){System.out.print(arr[y][z]+" ");}System.out.println();}}}

0 0
原创粉丝点击