总目录:地址如下看总纲
1、何为稀疏数组
稀疏数组,首先把稀疏拆出来,理解为写程序的你,头发日渐稀疏,渐少。
比如一个棋盘,可以用二位数组表示,这个棋牌(只有三种数据,0为没有棋子,1为黑棋,2为白棋)
2、应用场景
比如 一些量大,且多数为重复值的时候,可以使用(棋牌,地图等等)
3、图和说明:
1、记录数组有几行几列,有多少了不同的值
2、把具体不同值的元素中的列和行和值(棋子的颜色)记录在一个小规模的数组中,从而缩小程序的规模
3、需要主要的是列是固定(行,列,值),行不固定(取决于有棋子才获取行数据)
4、二位数组转稀疏数组
(1)思路:
1、首先注意的是,行和列这里设计都从零开始(因为遍历我打算从0开始)
2、遍历原始二位数组,获取到有效值个数 sum(有效值:就是除了初始化0值以外的)
3、再根据 sum 创建出 稀疏数组 长度 sparsearray[sum+1][3](可以理解就理解,不行就当公式记下来)
4、将要二位数组的有效数据存放到稀疏数组中(有效数据:行,列,值【1,2】)
(2)代码:
5、稀疏数组转二位数组
(1)思路:
1、先根据稀疏数组的第一行,创建出 原始数组的长度 11*11
2、在读取稀疏数组的后面行数(第二行开始),将稀疏有效值(V)赋值给原始数组的行列
(2)代码: