网站视觉设计原则,四个商城建设,设计商城网站,邯郸市永年区做网站的公司举例 稀疏数组第一行是原数据几行几列和几个有效数据的个数
下面的行是各个有效数组的行列与具体值 稀疏数组实现 代码实现
package DataStructures.sparsearray;/*** 二维数组转稀疏数组 与 稀疏数组转成二维数组*/
public class SparseArray {public static void main(Stri…举例 稀疏数组第一行是原数据几行几列和几个有效数据的个数
下面的行是各个有效数组的行列与具体值 稀疏数组实现 代码实现
package DataStructures.sparsearray;/*** 二维数组转稀疏数组 与 稀疏数组转成二维数组*/
public class SparseArray {public static void main(String []args){//创建一个原始二维数组11*11//0表示没有棋子1表示黑色棋子 2表示蓝色棋子int chessArr1[][] new int[11][11];chessArr1[1][2] 1;chessArr1[2][3] 2;chessArr1[4][5] 2;//输出一下原数组for (int[] row : chessArr1){for (int data : row){System.out.printf(%d\t,data);}System.out.println();/*** 结果* 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 2 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 2 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* 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 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0*/}//将二维数组 转 稀疏数组的思路//1.先遍历二维数组得到非0数据的个数int sum 0;for (int i 0;ichessArr1.length;i){for (int j 0; j chessArr1[0].length; j){if(chessArr1[i][j] ! 0) {sum;}}}// System.out.println(sum); //2//2.创建对应的稀疏数组int sparseArr[][] new int[sum1][3];//给稀疏数组第一行数据sparseArr[0][0] 11;sparseArr[0][1] 11;sparseArr[0][2] sum;//把非0值存放到稀疏数组中int count 0; //用于记录是第几个非0数据for (int i 0;ichessArr1.length;i){for (int j 0; j chessArr1[0].length; j){if(chessArr1[i][j] ! 0) {count;sparseArr[count][0] i;sparseArr[count][1] j;sparseArr[count][2] chessArr1[i][j];}}}//输出稀疏数组的形式System.out.println();System.out.println(得到的洗漱数组~~~~~~~~~~~);for (int i 0; isparseArr.length;i){for (int j 0; jsparseArr[0].length; j){System.out.print(sparseArr[i][j]\t);}System.out.println();/*** 结果* 得到的洗漱数组~~~~~~~~~~~* 11 11 3* 1 2 1* 2 3 2* 4 5 2*/}//将稀疏数组 --》 恢复成 原始的 二维数组/*** 1、先读取稀疏数组的第一行根据第一行的数据创建原始的二维数组* 2.再读取稀疏数组后几行的数据并赋给 原始二维数组 即可。*/// 1.想读取稀疏数组的第一行根据第一行的数据创建原始的二维数组int chessArr2[][] new int[sparseArr[0][0]][sparseArr[0][1]];//遍历稀疏数组 从稀疏数组的第二行开始for (int i 1; isparseArr.length;i){chessArr2[sparseArr[i][0]][sparseArr[i][1]] sparseArr[i][2];}//输出恢复后的稀疏数组for (int i 0; ichessArr2.length;i){for (int j 0; jchessArr2[0].length; j){System.out.print(chessArr2[i][j]\t);}System.out.println();/*** 结果* 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 2 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 2 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* 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 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0*/}}
}