数据结构与算法之稀疏数组

    科技2022-09-04  101

     

    先把代码放下面吧,以后再补充

    package com.pzg.sparsearray; /** * @author: pengzuguang * @date: 2020/10/5 21:26 * @description: 稀疏数组 */ public class SparseArray { public static void main(String[] args) { //初始化一个二维数组 int initialize[][] = new int[9][8]; initialize[2][2] = 1; initialize[3][2] = 1; initialize[4][4] = 2; //格式化输出初始化数组 System.out.println("格式化输出初始化数组:"); for (int[] data : initialize ) { for (int values: data ) { System.out.printf("%d\t",values); } System.out.println(); } //初始化数组转成稀疏数组 int sum=0; //标志初始化数组非0个数 for (int[] data : initialize ) { for (int values: data ) { if (values>0 || values<0) { sum++; } } } int sparseArray[][]=new int[sum+1][3]; //声明一个稀疏数组 //给稀疏数组赋值 sparseArray[0][0]=9; sparseArray[0][1]=8; sparseArray[0][2]=sum; int count=0; for (int i=0;i<9;i++){ for (int j=0;j<8;j++){ if(initialize[i][j]!=0){ count++; sparseArray[count][0]=i; sparseArray[count][1]=j; sparseArray[count][2]=initialize[i][j]; } } } System.out.println("稀疏数组长度:"+sparseArray.length); System.out.println("初始化数组转换成稀疏数组:"); for (int[] data : sparseArray ) { for (int values: data ) { System.out.printf("%d\t",values); } System.out.println(); } //声明第二个初始化二维数组 int initialize_2[][]=new int[sparseArray[0][0]][sparseArray[0][1]]; for (int i=1;i<=count;i++){ initialize_2[sparseArray[i][0]][sparseArray[i][1]]=sparseArray[i][2]; } System.out.println("稀疏数组转换成第二个初始化的二维数组:"); for (int[] data : initialize_2 ) { for (int values: data ) { System.out.printf("%d\t",values); } System.out.println(); } } }

    控制台输出结果如下

    格式化输出初始化数组: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 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 稀疏数组长度:4 初始化数组转换成稀疏数组: 9 8 3 2 2 1 3 2 1 4 4 2 稀疏数组转换成第二个初始化的二维数组: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 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

     

    Processed: 0.010, SQL: 9