zoukankan      html  css  js  c++  java
  • 稀疏矩阵压缩

    对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。
    人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素没有分布规律。

    由于稀疏矩阵中非零元素较少,零元素较多,因此可以采用只存储非零元素的方法来进行压缩存储。
      由于非零元素分布没有任何规律,所以在进行压缩 存储的时侯需要存储非零元素值的同时还要存储非零元素在矩阵中的位置,即非零元素所在的行号和列号,也就是在存储某个元素比如aij的值的同时,还需要存 储该元素所在的行号i和它的列号j,这样就构成了一个三元组(i,j,aij)的线性表。

    package example;
    
    public class Test{
        public static void main(String[] args) {
            int rows=6;
            int cols=6;
            int n=8;
            int[][] A={{25,0,0,32,0,-25},
                    {0,33,77,0,0,0},
                    {0,0,0,55,0,0},
                    {0,0,0,0,0,0},
                    {101,0,0,0,0,0},
                    {0,0,38,0,0,0}
                    };
            int[][] B=new int[n+1][3];
            B[0][0]=rows;                       //表示此矩阵的行数
            B[0][1]=cols;                        //表示此矩阵的列数
            B[0][2]=n;                            //表是非零的数目
            yasuo(A,B,rows,cols);
             for(int i=0;i<n+1;i++)
             {
                 for(int j=0;j<3;j++)
                   System.out.print(B[i][j]+"	");
                 System.out.println();
             }
        
    }
    
        private static void yasuo(int[][] A, int[][] B, int rows, int cols) {
            int k=1;
            for(int i=0;i<rows;i++){
                for(int j=0;j<cols;j++)
                {
                    if(A[i][j]!=0)
                    {
                        B[k][0]=i+1;
                        B[k][1]=j+1;
                        B[k][2]=A[i][j];
                        k++;
                    }
                }
            }
        }
    }
    /*
    6    6    8    
    1    1    25    
    1    4    32    
    1    6    -25    
    2    2    33    
    2    3    77    
    3    4    55    
    5    1    101    
    6    3    38    
    */
  • 相关阅读:
    记一次在黑盒环境下使用网络设备(华为)寻找主机
    mips交叉编译zlib
    Python 爬虫 之LOL皮肤图片抓取
    gitlab 新建项目 并将本地项目上传
    flask项目目录结构
    SQLALCHEM 初始化数据库
    python连接access数据库查询
    .Net Core 3.1 -- APISIX2.6 微服务网关入门
    SqlServer Agent代理无法启动(启动后自动关闭)的解决方法
    Centos7安装配置DNS服务器
  • 原文地址:https://www.cnblogs.com/xurui1995/p/5222672.html
Copyright © 2011-2022 走看看