稀疏组织
- 当一个数组中大部分元素为0,或者为同一个值的数组时,可以用稀疏数组来保存该数组
- 稀疏数组,记录一共有几行几列,有多少个不同值
- 把具有不同值的元素和行里了及值记录在一个小规模的数组中,从而缩小程序的规模!
我们定义一下原始数组:- 原始数组如下:
- 0 0 3 0 0
- 0 0 0 0 4
- 0 0 0 5 0
- 0 0 6 0 0
- 0 0 0 0 0
复制代码 可以看出,这个数组大部分都是0,我们可以把这个数组转化为稀疏数组
稀疏数组第一行存放的分别是总行数,总列数和存放的数据总数- //因为数组的下标是从0开始的,所以可以看出,第一行的第三个数,用下标表示,实际上是数组[0][2]
- 5 5 4
- 0 2 3
- 1 4 4
- 2 3 5
- 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 |