package com.cb.稀疏array;
import org.omg.PortableServer.ForwardRequestHelper;
public class Demo01 {
public static void main(String[] args) {
int[][] array = new int[11][11];
array[1][2]= 1;
array[1][3]=1;
array[2][4]=1;
int sum=0;//有效数据
System.out.println("二维数组~~~");
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if(array[i][j] != 0){
sum++;
}
System.out.print(array[i][j]+" ");
}
System.out.println();
}
//将二维数组换成稀疏数组
//第一行保存二维数组的长、宽、有效数值,剩下的行保存第几行第几列和数值
int count =1;
int[][] array2 = new int[sum+1][3];
array2[0][0]=11;
array2[0][1]=11;
array2[0][2]=sum++;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if(array[i][j] != 0){
array2[count][0]=i;
array2[count][1]=j;
array2[count][2]=array[i][j];
count++;
}
}
System.out.println();
}
System.out.println("稀疏数组~~~");
for (int i = 0; i < array2.length; i++) {
System.out.printf("%d\t%d\t%d\t",array2[i][0],array2[i][1],array2[i][2]);
System.out.println();
}
//将稀疏数组换成二维数组
int[][] array3 = new int[array2[0][0]][array2[0][1]];
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]]=array2[i][2];
}
System.out.println("将稀疏数组换成二维数组-----");
for (int i = 0; i < array3.length; i++) {
for (int j = 0; j < array3.length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
稀疏数组
最新推荐文章于 2024-02-22 13:44:18 发布