public static void zipArrary(int[][] arrays){
System.out.println("原始数组:"+arrays.length+"*"+arrays[0].length);
for (int[] ints:arrays){
for (int iint : ints){
System.out.print(iint+"\t");
}
System.out.println();
}
int sum=0;
for (int i=0;i<arrays.length;i++){
for (int j=0;j<arrays[0].length;j++){
if (arrays[i][j] != 0 ){
sum++;
}
}
}
System.out.println("有效值得个数:"+sum);
int[][] arrary2=new int[sum+1][3];
arrary2[0][0]=arrays.length;
arrary2[0][1]=arrays[0].length;
arrary2[0][2]=sum;
int count=0;
for (int i = 0; i < arrays.length; i++) {
for (int j = 0; j < arrays[i].length; j++) {
if (arrays[i][j]!=0){
count++;
arrary2[count][0]=i;
arrary2[count][1]=j;
arrary2[count][2]=arrays[i][j];
}
}
}
System.out.println("稀疏数组==========");
for (int i = 0; i < arrary2.length; i++) {
System.out.println(arrary2[i][0]+"\t"+arrary2[i][1]+"\t"+arrary2[i][2]+"\t");
}
int[][] array3=new int[arrary2[0][0]][arrary2[0][1]];
for (int i = 1; i < arrary2.length; i++) {
array3[arrary2[i][0]][arrary2[i][1]]=arrary2[i][2];
}
System.out.println("原稀疏数组=======");
for (int[] ints:array3){
for (int iint : ints){
System.out.print(iint+"\t");
}
System.out.println();
}
}
==========================================================
原始数组:8*8
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 2 1 0 0 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
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
有效值得个数:4
稀疏数组==========
8 8 4
1 2 1
2 3 2
2 4 1
4 4 1
原稀疏数组=======
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 2 1 0 0 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
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
稀疏数组的使用
最新推荐文章于 2024-05-03 16:12:22 发布