稀疏数组就是数组中,大部分的元素值
都未被使用(或都为0),在数组中仅有少
部分的空间使用。因此造成内存空间的浪
费,为了解决这问题,并且不影响数组中原
有的元素值,我们采用了一种压缩的方式来
表示稀疏数组的内容。
public class array06 {
public static void main(String[] args) {
int[][] Data={{0,0,0,0,0,0,0},
{0,3,0,0,0,0,0},
{0,0,0,0,0,0,0},
{1,4,0,0,0,0,0},
{0,0,7,0,0,0,0},
{0,0,0,0,0,5,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}
};
int CompressData[][]=new int[10][3];
int Index;
int i,j;
Index=0;
System.out.println("Two dimensional sparse array:");
for(i=0;i<9;i++){
for(j=0;j<7;j++)
System.out.print(" "+Data[i][j]+" ");
System.out.println("");
}
for(i=0;i<9;i++)
for(j=0;j<7;j++)
if(Data[i][j]!=0){
Index++;
CompressData[Index][0]=i;
CompressData[Index][1]=j;
CompressData[Index][2]=Data[i][j];
}
CompressData[0][0]=9; //表示这个数组有9行 7列 index个元素
CompressData[0][1]=7;
CompressData[0][2]=Index;
System.out.println("Two dimensional compress array:");
for(i=0;i<=Index;i++){
for(j=0;j<3;j++)
System.out.print(" "+CompressData[i][j]+" ");
System.out.println("");
}
}
}