入门级 - 稀松数组

原创
06/07 22:29
阅读数 50

`package com.bianmirj;

/**

  • 数组的稀松算法 */

public class ScarceArray { public static void main(String[] args) {

    //准备好源数组
    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 11 11 3  //11行 11列 3个元素
     1  1 2  1
     2  2 2  2
     3  4 5  2
     */

    //先求出总行 总列
    int col = 11;
    int row = 11;
    int sum = 0;

    for (int[] vv : chessArr1) {
        for (int v : vv) {
            if (v != 0) {
                sum++;
            }
        }
    }

    toScarceArray(chessArr1, sum);

}

public static void toScarceArray(int[][] arr, int num) {
    int[][] newArr = new int[num + 1][3];
    newArr[0][0] = 11;
    newArr[0][1] = 11;
    newArr[0][2] = num;
    int temp = 1;
    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr[i].length; j++) {
            if (arr[i][j] != 0) {
                newArr[temp][0] = i;
                newArr[temp][1] = j;
                newArr[temp][2] = arr[i][j];
                temp++;
            }
        }
    }
    for (int[] row : newArr) {
        for (int data : row) {
            System.out.printf("%d\t", data);
        }
        System.out.println();
    }

    toEasyArray(newArr);
}


public static void toEasyArray(int[][] arr) {
    int c = arr[0][0];
    int r = arr[0][1];
    int chessArr1[][] = new int[c][r];

    for (int i = 0; i < arr.length; i++) {
        if (i != 0) {
            int coll = arr[i][0];
            int rowl = arr[i][1];
            System.out.println(coll + "-" + rowl);
            chessArr1[coll][rowl] = arr[i][2];
        }

    }

    for (int[] row : chessArr1) {
        for (int data : row) {
            System.out.printf("%d\t", data);
        }
        System.out.println();
    }
}

} `

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部