zoukankan      html  css  js  c++  java
  • 02稀疏数组(java版本)

     1 package com.aixuexi.contact;
     2 
     3 public class SpareArray {
     4     public static void main(String[] args) {
     5         
     6         // 创建一个原始的二维数组 11 * 11
     7         int arrchess1[][] = new int[11][11];
     8         //二维数组 赋值
     9         arrchess1[1][2] = 1;
    10         arrchess1[2][3] = 2;
    11         arrchess1[4][5] = 1;
    12         arrchess1[8][5] = 2;
    13         // 输出原始的二维数组
    14         System.out.println("====原始数组==== ");
    15         for(int i = 0; i < 11; i++) {
    16             for(int j= 0; j < 11; j++) {
    17                 System.out.printf("%d ",arrchess1[i][j]);
    18             }
    19             System.out.println();
    20         }
    21         // 将二维数组 转 稀疏数组
    22         System.out.println("====稀疏数组==== ");
    23         // 1)统计个数 count
    24         int sum = 0; 
    25         for(int i = 0; i < 11; i++) {
    26             for(int j = 0; j< 11; j++) {
    27                 if(arrchess1[i][j] != 0) {
    28                     sum++;
    29                 }
    30             }
    31         }
    32         System.out.println("稀疏数组个数是:"+ sum);
    33         // 2)创建对应的稀疏数组  、赋值
    34         int sparearray[][] = new int[sum+1][3];
    35         sparearray[0][0] = 11; //
    36         sparearray[0][1] = 11; //
    37         sparearray[0][2] = sum; //个数
    38         //遍历原来的二维数组,将非0的值存放到 sparseArr中
    39         int count = 0;
    40         for(int i = 0; i < 11; i++) {
    41             for(int j = 0; j < 11; j++) {
    42                 if(arrchess1[i][j] != 0) {  //按行给稀疏数组赋值
    43                     count++; //第0行已经存放数据了 从第一行开始
    44                     sparearray[count][0] = i;
    45                     sparearray[count][1] = j;
    46                     sparearray[count][2] = arrchess1[i][j]; //注意点:--原来的-- 不要搞混
    47                 }
    48             }
    49         }
    50         // 3)打印稀疏数组
    51         for(int i = 0; i < sum + 1; i++) {
    52             for(int j = 0; j < 3; j++) {
    53                 System.out.printf("%d	",sparearray[i][j]);
    54             }
    55             System.out.println();
    56         }
    57         System.out.println();
    58         //将稀疏数组 --》 恢复成 原始的二维数组
    59         //1)1. 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组
    60         int arrchess2[][] = new int[sparearray[0][0]][sparearray[0][1]];
    61         //2)2. 在读取稀疏数组后几行的数据(从第二行开始),并赋给 原始的二维数组 即可
    62         for(int i = 1; i < sparearray.length;i++) { // 注意:遍历sparearray  别弄错成 arrchess2
    63             arrchess2[sparearray[i][0]] [sparearray[i][1]] = sparearray[i][2];    
    64         }
    65         
    66         System.out.println("====恢复的稀疏数组==== ");
    67         for(int i = 0; i < 11; i++) {
    68             for(int j= 0; j < 11; j++) {
    69                 System.out.printf("%d ",arrchess2[i][j]);
    70             }
    71             System.out.println();
    72         }
    73         
    74         System.out.println("hello..");
    75     }
    76 }

  • 相关阅读:
    题目一:使用Java实现二维数组中的查找
    算法的时间复杂度
    爬虫----爬虫存储库
    爬虫----爬虫解析库Beautifulsoup模块
    问卷调查
    爬虫----爬虫请求库selenium
    爬虫----爬虫请求库requests
    爬虫----爬虫基本原理
    python金融与量化分析------Matplotlib(绘图和可视化)
    Python与金融量化分析----金融与量化投资
  • 原文地址:https://www.cnblogs.com/yaozhenhua/p/11148011.html
Copyright © 2011-2022 走看看