稀疏数组:

当一个二维数组中大部份的值为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

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!