稀疏数组了解
概念
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,可以看做是普通数组的压缩;
稀疏数组处理方式
-
记录数组一共有几行几列,有多少个不同的值
-
把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序规模
应用场景
如下图:原始数组是一个1111的二维数组,转换为一个39的一个稀疏数组,
应用实例:
五子棋程序
- 思路分析:
二维数组与稀疏数组转换
二维数组转稀疏数组
转换思路:
- 遍历“原始二维数组”,得到有效数据数sum
- 根据sum 创建 稀疏数组sparseArr Int[sum+1][3]
- 将二维数组的有效数据存入到稀疏数组
稀疏数组转二维数组
转换思路:
- 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的chessArr2=int[11][11]
- 读取稀疏数组中的数据,并赋给原始的二维数组即可