Loading

稀疏数组创建与还原

在这里插入图片描述在这里插入图片描述

package com.zhang.array;

/**
 * TODO
 *
 * @author zhangj
 * @version 1.0
 * @date 2021/10/2 11:08
 */
public class Demo5 {
    public static void main(String[] args) {
        int[][] array = new int[11][11];
        array[1][2] = 1;
        array[2][3] = 1;
        //原始数组
        System.out.println("输出原始数组:");
        for (int[] ints : array) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

        //转化为稀疏数组
        //获取有效值得个数
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            for (int i1 = 0; i1 < array.length; i1++) {
                if (array[i][i1]!=0)
                    sum++;
            }
        }
        System.out.println("有效值个数:"+sum);

        int[][] array2 = new int[sum+1][3];
        array2[0][0] = array.length;
        array2[0][1] = array.length;
        array2[0][2] = sum;

        int count = 0;
        for (int i = 0; i < array.length; i++) {
            for (int i1 = 0; i1 < array.length; i1++) {
                if (array[i][i1]!=0){
                    array2[++count][0]=i;
                    array2[count][1]=i1;
                    array2[count][2]=array[i][i1];
                }
            }
        }
        System.out.println("稀疏数组:");
        for (int[] ints : array2) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

        //还原稀疏数组
        int[][] array3 = new int[array2[0][0]][array2[0][1]];

        for (int i = 1; i <= array2[0][2]; i++) {
            array3[array2[i][0]][array2[i][1]]=array2[i][2];
        }

        System.out.println("还原后得数组:");
        for (int[] ints : array3) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
    }
}

在这里插入图片描述

posted @ 2021-10-02 19:27  zhangj9  阅读(29)  评论(0)    收藏  举报