java稀疏数组

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

稀疏组织


  • 当一个数组中大部分元素为0,或者为同一个值的数组时,可以用稀疏数组来保存该数组
  • 稀疏数组,记录一共有几行几列,有多少个不同值
  • 把具有不同值的元素和行里了及值记录在一个小规模的数组中,从而缩小程序的规模!
我们定义一下原始数组:
  1. 原始数组如下:
  2. 0 0 3 0 0
  3. 0 0 0 0 4
  4. 0 0 0 5 0
  5. 0 0 6 0 0
  6. 0 0 0 0 0
复制代码
可以看出,这个数组大部分都是0,我们可以把这个数组转化为稀疏数组
稀疏数组第一行存放的分别是总行数,总列数和存放的数据总数
  1. //因为数组的下标是从0开始的,所以可以看出,第一行的第三个数,用下标表示,实际上是数组[0][2]
  2.         5 5 4
  3.         0 2 3
  4.         1 4 4
  5.         2 3 5
  6.         3 2 6
复制代码
下面看一下如何实现这种稀疏数组,又是如何把稀疏数组还原成
代码示例:
[code]package com.ling.array;public class ArrayDemo11 {    public static void main(String[] args) {        int[][]   array=new int[5][5];        array[0][2]=3;        array[1][4]=4;        array[2][3]=5;        array[3][2]=6;        System.out.println("原始数组如下:");        for (int[] ints : array) {            for (int anInt : ints) {                System.out.print(anInt+" ");            }            System.out.println();        }        System.out.println("行"+"\t"+"列"+"\t"+"存放的数据"+"\t");        //稀疏数组第一行存放的分别是总行数,总列数和存放的数据总数//        System.out.println(5+"\t"+5+"\t"+4);//        System.out.println(1+"\t"+3+"\t"+3);//        System.out.println(2+"\t"+5+"\t"+4);//        System.out.println(3+"\t"+4+"\t"+5);//        System.out.println(4+"\t"+3+"\t"+6);        int sum=0;        for (int i = 0; i
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表