码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构01-稀疏数组

时间:2020-04-02 19:35:24      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:示例   数据结构   保存   信息   不同   for   多少   一个   通过   

适用情景:

当一个数组(此处针对二维)中大部分元素为0,或者为同一个值的数组时,可以采用稀疏数组来保存该数组。
通常一个二维数组中会有一些无效信息(可以是0)所以一个10*10的二维数组,即使其中只有20个有效数据,如果不进行优化,需要占用100个数据空间;如果使用稀疏数组去优化,则只需要20*3=60个数据空间。
但如果只是一个3*3的二维数组,其中存储了6个有效数据呢?那我们就要用一个6*3的稀疏数组,显然稀疏数组不再稀疏,所以稀疏数组只适用于大型的二维数组。

稀疏数组处理方法:

-记录数组一共有几行几列,有多少个不同的值(非0)
-把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模

处理方法讲解:

-我们首先将二维数组中的0作为无效数据,非0值作为有效数据,
-然后将通过二重for循环遍历,将有效数据从二维数组中抽取出来作为稀疏数组的组成元素
-稀疏数组的结构为一个,n行,3列,的数组。第一行分别为原始二维数组的:行数,列数,有效值数;
-后面的每一行对应一个有效值得信息:所在原始二维数组的行,所在原始二维数组的列,具体值

示例:

数据结构01-稀疏数组

标签:示例   数据结构   保存   信息   不同   for   多少   一个   通过   

原文地址:https://www.cnblogs.com/sout-ch233/p/12622429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!