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

稀疏矩阵与三元组表示法

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

一般只要满足(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();
		}
	}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值