zoukankan      html  css  js  c++  java
  • 稀疏数组

    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();
            }
            
        }
    }
  • 相关阅读:
    Codeforces Round #604(Div. 2,
    简单的三层框架以及使用dbutils进行数据库操作(入门)
    DBUtil数据库工具封装
    GUI 中监听 文本框实时改变的实例
    java基础教程GUI
    Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合
    计算器代码
    记事本应用程序java源代码
    GUI
    dbutils开源项目用法
  • 原文地址:https://www.cnblogs.com/biexei/p/11426506.html
Copyright © 2011-2022 走看看