【稀疏数组】

简介: 【稀疏数组】

稀疏数组的定义:

当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。
稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值;把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模

1.原数组的格式

2.我们需要把以上的数组使用稀疏数组进行表示出来

3.原数组的实现

public static void main(String[] args) {
        int [][]arrays=new int[11][11];
        arrays[1][2]=1;
        arrays[2][3]=2;
        System.out.println("输出原始数组");
        for(int [] ints :arrays){
            for ( int anInt : ints){
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

4.求有效数字的个数

int sum=0;
        for (int i = 0; i < arrays.length; i++) {
            for (int j = 0; j < arrays.length; j++) {
                if(arrays[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println("有效数字为:"+sum);

5.创建一个稀疏数组并输出格式

//2.创建一个稀疏数组
    int [][]array2=new int[sum+1][3];
     array2[0][0]=arrays.length;
     array2[0][1]=arrays.length;
     array2[0][2]=sum;
     //遍历二维数组,将非零的值,存放稀疏数组中
        int count=0;
        for (int i = 0; i <arrays.length ; i++) {
            for (int j = 0; j <arrays[i].length ; j++) {
                if(arrays[i][j]!=0){
                    count++;
                    array2[count][0]=i;   //第count行0列为 行坐标
                    array2[count][1]=j;   //第count行1列为 列坐标
                    array2[count][2]=arrays[i][j];   //第count行2列为 值
                }
            }
        }
        for (int i = 0; i <array2.length ; i++) {
            System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");
        }

6.还原原始数组

//还原原数组
        int array3[][]=new int[array2[0][0]][array2[0][1]];
        array3[array2[1][0]][array2[1][1]]=array2[1][2];
        array3[array2[2][0]][array2[2][1]]=array2[2][2];
        for(int []s : array3){
            for (int s1 : s){
                System.out.print(s1+"\t");
            }
            System.out.println();
        }


相关文章
|
3月前
|
存储 Java
Java数组07:稀疏数组
【8月更文挑战第23天】
32 2
|
4月前
|
定位技术
稀疏数组
稀疏数组
二维数组的压缩存储,稀疏数组
在二维数组只有少部分有效数据的时候,为了不存储过多的无效数据,我们可以使用稀疏数组来存储二维数组。
|
存储 NoSQL
第3章 数组与矩阵——3.5 稀疏矩阵
第3章 数组与矩阵——3.5 稀疏矩阵
|
存储 Java
(一)Java数据结构之稀疏数组
稀疏数组(sparse array)是一种只为数组中的非零元素分配内存的特殊类型数组,分为三列: 1.行下标 2.列下标 3.值 第一行为总行数、总列数、值的个数,其他行存储了非零元素的下标和值。
64 0
|
Java 定位技术
减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现
减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现
123 1
减小程序规模!稀疏数组Sparsearray,数据结构二维数组与稀疏数组转换,Java实现
|
存储 数据挖掘 vr&ar
R 数据集的概念、向量、矩阵和数组|学习笔记
快速学习 R 数据集的概念、向量、矩阵和数组。
221 0
R 数据集的概念、向量、矩阵和数组|学习笔记
|
存储 Java 索引
Java数据结构:稀疏数组的实现与应用
文章目录 1 稀疏数组引入 1.1 使用场景 1.2 稀疏数组简介 2 稀疏数组的实现 2.1 案例概述 2.2 思路分析 2.3 代码实现
Java数据结构:稀疏数组的实现与应用
|
算法 Go 开发者
数据结构和算法-稀疏数组转原始数组|学习笔记
快速学习数据结构和算法-稀疏数组转原始数组
数据结构和算法-稀疏数组转原始数组|学习笔记