• 稀疏数组


    package data.struct;
    
    import org.junit.Test;
    
    /*
     * A.稀疏数组
     * ---------
     * 0 0 0 0 0
     * 0 1 0 8 0
     * 5 0 0 0 9
     * 0 7 0 0 0
     * ---------
     * 创建原始数组有效值稀疏数组
     * 第一行信息为原始数组size(rows) size(cols) val
     * 再记录有效值对应的行、列、值
     * ---------
     *   r c v
     * 0 4 5 5
     * 1 1 1 1
     * 2 1 4 8
     * 3 2 0 5
     * 4 2 4 9
     * 5 3 1 7
     * ---------
     * */
    
    public class SparseArray {
        @Test
        public void sparseArray() {
            //1.创建原始数组,并构建数据
            int originalArray[][] = new int[4][5];
            originalArray[1][1] = 1;
            originalArray[1][4] = 8;
            originalArray[2][0] = 5;
            originalArray[2][4] = 9;
            originalArray[3][1] = 7;
            for(int i=0; i<originalArray.length; i++) {
                for(int j=0; j<originalArray[i].length; j++) {
                    System.out.print(originalArray[i][j] + "	");
                }
                System.out.println();
            }
            
            //2.获取有效数字个数
            int count = 0;
            for(int i=0; i<originalArray.length; i++) {
                for(int j=0; j<originalArray[i].length; j++) {
                    if(originalArray[i][j] != 0) {
                        count++;
                    }
                }
            }
            System.out.printf("有效数字有%d个", count);
            System.out.println();
            
            //3.创建稀疏数组,第一行信息为原始数组size(rows) size(cols) val
            int sparseArray[][] = new int[count+1][3];
            sparseArray[0][0] = originalArray.length;
            sparseArray[0][1] = originalArray[0].length;
            sparseArray[0][2] = count;
            
            //4.遍历原始数组并将有效值,r,c,v添加至稀疏数组
            int sparseArrayRow = 1;
            for(int i=0; i<originalArray.length; i++) {
                for(int j=0; j<originalArray[i].length; j++) {
                    if(originalArray[i][j] != 0) {                    
                        sparseArray[sparseArrayRow][0] = i;
                        sparseArray[sparseArrayRow][1] = j;
                        sparseArray[sparseArrayRow][2] = originalArray[i][j];
                        sparseArrayRow ++;
                    }
                }
            }
            
            //5.查看稀疏数组结果
            for(int ii=0; ii<sparseArray.length; ii++) {
                for(int jj=0; jj<sparseArray[ii].length; jj++) {
                    System.out.print(sparseArray[ii][jj] + "	");
                }
                System.out.println();
            }
            
        }
    }
  • 相关阅读:
    shell 指令
    在Linux下搭建nRF51822的开发烧写环境(makefile版)
    宏定义。字符串拼接和字符串整形转字符串
    django-debug-toolbar安装过程中的error
    pipenv
    Docker 命令大全
    MySQL性能优化
    docker操作
    使用网易源解决docker下载镜像文件慢的问题
    w3school/jQuery 教程
  • 原文地址:https://www.cnblogs.com/biexei/p/11426506.html
Copyright © 2020-2023  润新知