美文网首页
需要再次复习!!稀疏数组||数据结构

需要再次复习!!稀疏数组||数据结构

作者: 哈迪斯Java | 来源:发表于2021-09-20 14:36 被阅读0次

稀疏数组:也就是说当一个数组当中的大部分元素为0的话,或者说是同一值的数组时候,就可以使用稀疏数组来保存该数组。

@数组是从第0个开始的,和习惯用法是不一样的。


image.png

记录方式为:
~首先记录数组一共是几行几列,有多少个不同的值
~其次就是把具有不同值的元素的位置(行与列)记录下来。目的即为缩小程序的规模。


package Array;

public class ArrayDemon8 {
    public static void main(String[] args) {
        //1.创建一个二维数组,11*11 0代表没有棋子;1代表黑棋;2代表白棋
        int[][] array1 = new int[11][11];
        array1[1][2] = 1;
        array1[2][3] = 2;
        //输出原始的数组
        System.out.println("输出原始的数组");

        for (int[] ints:array1){
            for (int anInt:ints){
                //ints,anInt是声明的两个变量,相当于i,j
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
        System.out.println("================");
        //转换为稀疏数组保存
        //获取有效值的个数
        int sum = 0;
        for (int i = 0;i<11;i++){
            for (int j = 0;j<11;j++){
                if (array1[i][j]!=0){
                    sum++;
                }
            }

        }
        System.out.println("有效值的个数为"+sum);

        //2.创建一个稀疏数组的数组
        int[][] array2 = new int[sum+1][3];

        array2[0][0]=11;
        array2[0][1]=11;
        array2[0][2]=sum;

        //遍历二维数组,将非零的值,存放在稀疏数组当中
        int count=0;
        for (int i = 0;i<array1.length;i++){
            for (int j = 0;j<array1[i].length;j++){
                if (array1[i][j]!=0){
                    count++;
                    array2[count][0] = i;
                    array2[count][1] = j;
                    array2[count][2] = array1[i][j];
                }

            }
        }
        //输出稀疏数组
        System.out.println("稀疏数组");

        for (int i = 0;i<array2.length;i++){
            System.out.println(array2[1][0]+"\t"
            +array2[i][0]+"\t"
            +array2[i][0]+"\t");
        }




    }

}

相关文章

  • 需要再次复习!!稀疏数组||数据结构

    稀疏数组:也就是说当一个数组当中的大部分元素为0的话,或者说是同一值的数组时候,就可以使用稀疏数组来保存该数组。 ...

  • 数据结构--稀疏数组

    概述 稀疏数组也是一种数组(总是二维的),是一种多维数组的数组压缩技术。比如存在一个的数组,但是数组中只有3个元素...

  • 数据结构之 稀疏数组

    作用 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 实现思路 1)记录数组一...

  • 二维数组和稀疏数组转换并存盘

    稀疏数组可以节约存储空间,以围棋棋盘举例,正常一个10*10的棋盘需要用到二维数组的数据结构来表示 int[10]...

  • 数据结构入门教程-队列

    上节我们简单的了解了什么是稀疏数组以及通过一个案例来简单分析它,关于它的更多详情请移驾数据结构入门教程-稀疏数组,...

  • 数据结构002之稀疏数组

    什么是稀疏数组? 稀疏数组可以看做是对普通数组的压缩,普通数组是指无效数据量远大于有效数据量的数组,为什么要进行压...

  • 重学数据结构 --- 分类+稀疏数组

    一、数据结构的分类 1. 数据结构两大类 线性结构和非线性结构 1) 线性结构 线性结构是最常见的数据结构,特点是...

  • java数据结构之稀疏数组

    今天学习了数组中的一种-叫做稀疏数组。什么叫稀疏数组呢?如果一个数组(包括多维数组)中的大部分元素为0,或者为同一...

  • 数据结构-4.稀疏数组

    1. 当一个数组中大部分元素为 0,或者为同一个值时,可以使用稀疏数组来保存该数组 处理方法: 记录数组一共有多少...

  • 稀疏数组

    1.稀疏数组 1.1创建一个指定长度的稀疏数组 new创建var a = new Array();>>(3)[em...

网友评论

      本文标题:需要再次复习!!稀疏数组||数据结构

      本文链接:https://www.haomeiwen.com/subject/aiumgltx.html