稀疏数组(学习老韩数据与结构)总结

视频链接:008_尚硅谷_稀疏数组转换的思路分析_哔哩哔哩_bilibili

首先本人也是小白一枚,这里只能讲一讲我本人的理解,大伙可以去视频里面学习

 

 首先看这上面的两张图,第一张是我们平时的二维数组,当然,下面就是所说的稀疏数组,

我个人理解就是对于二维数组很多无效数据的一种简化.

稀疏数组的第一行比较特殊,第一行存储的是:

第一行第一个数就是二维数组的横列数,第一行第二个数就是二维数组的纵列数,第一行第三个数就是二维数组的有效数的个数(对于什么样的是有效值:就是二维数组中不为零的数据)

从第二行开始就是二维数组有效值的纵坐标和横坐标.....

下面是用java代码实现的二维数组转稀疏数组:

//定义一个二维数组
        int[][] array=new int[11][11];
        //给二维数组添加有效值
        array[5][4]=1;
        array[7][3]=2;
        //定义一个数值记录二维数组里面的有效值
        int sum=0;
        //遍历二维数组的有效值个数
        for(int i=0; i<11; i++){
            for(int j=0; j<11; j++){
                if(array[i][j]!=0){
                    sum++;
                }
            }
        }
        //定义一个稀疏数组
        int[][] sparseArray=new int[sum+1][3];
        //稀疏数组第一行分别记录二维数组的横纵数量和有效数量
        sparseArray[0][0]=11;
        sparseArray[0][1]=11;
        sparseArray[0][2]=3;
        //定义一个数值记录稀疏数组的行号
        int mark=0;
        //遍历二维数组有效值准备放到稀疏数组里面
        for(int i=0; i<11; i++){
            for(int j=0; j<11; j++){
                if(array[i][j]!=0){
                    mark++;
                    sparseArray[mark][0]=i;
                    sparseArray[mark][1]=j;
                    sparseArray[mark][2]=array[i][j];
                }
            }
        }
        //把稀疏数组遍历出来看看效果
        for (int i=0; i<sparseArray.length; i++){
            System.out.println(sparseArray[i][0]+"---"+sparseArray[i][1]+"---        
        "+sparseArray[i][2]);
        }
    }

看到这里对于稀疏数组转为二维数组也是思考一下就可以想出来了,大家快去试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值