稀疏数组:压缩存储、二维组坐标位置
- 如图:二维数组
- 存取图上数组 1 2数组
第一行: 前1和2是 二维数组的描述 11行 11列 最后2 表示有个两数
第二行: 1 行 2列 1具体的值
代码实现
public static void main(String[] args) {
//定义11*11的二维数组 0表示没有棋子 1表示白棋 2表示黑棋
//存文件id
int id =1;
int row =11;
int col =11;
int chessArray[][] =new int[row][col];
chessArray[1][2] =1;
chessArray[2][3] =2;
//输出原始二维数组
//有效数个数
int sum=0;
System.out.println("原始二维数组");
for(int [] rowone:chessArray){
for (int data:rowone){
System.out.printf("%dt",data);
if(data != 0){
sum++;
}
}
System.out.println();
}
//创建稀疏维数
int sparseArray[][] =new int[sum+1][3];
//稀疏第一行数据
sparseArray[0][0]=row;
sparseArray[0][1]=col;
sparseArray[0][2]=sum;
//赋值稀疏数组
int count =0;
System.out.println("稀疏数组");
for(int i =0;i
自己总结
1.优点:节省内存空间
2.缺点:消耗时间成本



