稀疏数组
二维数组与稀疏数组的思路
1.遍历原始的二维数组,得到有效数据的个数sum
2.根据sum就可以创建稀疏数组sparseArr int[sum+1]
3.将二维数字的有效数据存入到稀疏数组中
稀疏数组转原始的二维数组的思路
1.先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的chessArr2=int[11][11]
2.在读取稀疏数组后几行的数据,并赋给原始的二维数组即可.
二维数组转换成稀疏数组的思路
1.先遍历二维数组得到非0数据的个数
int sum=0;
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(arr1[i][j]!=0)
sum++;
}
}
2.创建对应的稀疏数组
int sparseArr[][]=new int[sum+1][3];
//给稀疏数组赋值
sparseArr[0][0]=11;
sparseArr[0][1]=11;
sparseArr[0][2]=sum;
//遍历二维数组,将非0的值放到sparseArr中
int count=0;//count用于记录第几个非0数据
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
if(arr1[i][j]!=0)
count++;
sparseArr[count][0]=i;
sparseArr[count][1]=j;
sparseArr[count][2]=arr1[i][j];
}
}
//输出稀疏数组的形式
system.out.println();
System.out.println("得到稀疏数组为~~~");
for(int i=0;i<spaseArr.length;i++){
System.out.printf("%d\t%d\t",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);
}
System.out.println();