java数据结构基础:稀疏数组
稀疏数组:
当一个二维数组中大部份的值为0,或者为同一值的时候,可以用稀疏数组来保存
实现思路:
记录二维数组有多少行多少列、多少个不同的值
把不同的值按照所在行列,记录在一个规模较小的数组中
举例:
11×11的二维数组:
对应的稀疏数组:
其中,第一行分别为,原二维数组总行数、总列数、不为0的数的个数
之后几行的每一列分别代表所在行、所在列、值
二维数组转稀疏数组实现思路:
1. 遍历二维数组,得到非0数据的个数
2. 创建对应的稀疏数组
3. 再次遍历二维数组,将非0的值存放到稀疏数组中
稀疏数组恢复二维数组实现思路:
1. 读取稀疏数组的第一行,根据第一行的数据,创建对应的二维数组
2. 读取稀疏数组后几行的数据,赋值给二维数组
代码实现:
输出结果:
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
11 11 3
1 2 1
2 3 2
4 5 2
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 2 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注的更多内容!
上一篇: 关于对象