java之用三元组实现稀疏矩阵

本文介绍了如何使用三元组来实现稀疏矩阵的压缩存储,以节省空间。在矩阵中,当非零元素远少于零元素时,称为稀疏矩阵。为避免空间浪费,采用三元组仅存储非零元素。设计思路包括三元组的三个元素分别代表行数、列数和非零个数,以及从第二行开始,记录非零元素的原始行列位置和值。文章提供了一个简单的棋盘应用示例及相应的Java代码实现。
摘要由CSDN通过智能技术生成

       之前写过js的算法实现,但是也只是看了教程,自己没有去手动实现,所以算法的水平还是很低。现在重新开始好好写一下这段时间学习算法的代码实现。算法来源是b站的BV1E4411H73v.因为教学是java实现的,所以跟着老师用java的算法实现,虽然工作中用的是c#,就当做新学一门语言吧。

稀疏矩阵

        在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度。(百度总结)

      总的来说就是一个二维矩阵,然后0的元素过多,因为会造成空间上的浪费。因为可以引用三元矩阵的方式就是只存储非零元素的方法来进行压缩存储。简单点,就是一个多行3列的二维矩阵。

设计思路

      1.三元组的一个元素代表矩阵的行数,第二个元素代表矩阵的列数,第三个元素代表矩阵的非零个数。

      2.从第二行起,第一个元素代表非零元素在原矩阵的行数,第二个元素代表非零元素在原矩阵的列数,第三个元素代表矩阵的值。 

     常用于棋盘之类,先写了一个实现的小算法。

代码实现如下

package com.atguigu.aocunxin;

import java.io.Console;

public class first {
    public static void main(String[] args) {
        int[][] yiw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值