稀疏数组

稀疏数组

1.为什么使用稀疏数组

我们通常会遇到这样的情况,在一个二维数组中,只有少数几个位置存储了有效数据,其他位置都为0,这时,原来的二维数组就显得浪费内存空间了。

这时我们使用稀疏数组

将二维数组的总行数、总列数、有效数据个数,及有效数据所在的行数、列数及其值存储,这样既保留了原来数组的特征,同时压缩了占用的内存空间。

举个例子

这是一个原始的二维数组

原始二维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
package DataStructure;

public class sparesArray {
public static void main(String[] args) {
int anArray[][] = new int[11][11];
anArray[2][3] = 1;
anArray[3][4] = 2;
for(int i = 0; i < anArray.length; i++){
for(int j = 0;j < anArray[i].length; j++){
System.out.print(anArray[i][j]+"\t");
}
System.out.println();
}

2.稀疏数组的实现

2.1 我们希望稀疏是这样的

拿以上的普通二维数组为例

行 列 数

11 11 2 //稀疏数组的第一行存放的是原始数组的行、列、有效数据的总数

2 3 1 //第二行的”行“存储了第一个有效数据的行号;”列“存储了列号;”数“存储了有效数据的具体值

3 4 2 //同上,记录第二个数据

2.2稀疏数组的代码实现


稀疏数组
http://example.com/2022/10/18/稀疏数组/
作者
kaze-09
发布于
2022年10月18日
许可协议