package com.Array; public class ArraysDemo8 { public static void main(String[] args) { int[][] qi = new int[11][11]; //原数组 qi[1][2] = 1; qi[2][3] = 2; qi[6][3] = 3; System.out.println("out put origin:"); for (int[] i : qi) { for (int j : i) { System.out.print(j + "\t"); } System.out.println(); } int sum = 0; //对原数组大小统计 int tx=0; int ty=0; int nowx = 0; int nowy = 0; for (int[] x : qi ) {ty++;tx=0; for (int y : x ) {tx++; if (y != 0) sum++; } } int qix[][] = new int[sum+1][3]; int f=1;//压缩稀疏数组 qix[0][0]=tx; qix[0][1]=ty; qix[0][2]=sum; for (int[] x : qi ) { nowx=0; for (int y : x ) { if (y != 0) { qix[f][0] = nowy; qix[f][1] = nowx; qix[f][2] = y; if(f==sum)break; f++; } nowx++; } nowy++; } for (int[] i : qix) { for (int j : i) { System.out.print(j + "\t"); } System.out.println(); } int[][] huanarray=new int [qix[0][0]+1][qix[0][1]+1]; //还原 for (int i = 1; i <=qix[0][2] ; i++) { huanarray[qix[i][0]][qix[i][1]]=qix[i][2]; } for (int[] i : huanarray) { for (int j : i) { System.out.print(j + "\t"); } System.out.println(); } }}
稀疏数组体验
最新推荐文章于 2024-08-09 14:00:00 发布