一、稀疏数值
当一个数组中大部分元素为0时,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。
二、使用步骤
1.处理方法
(1)记录数组中一共有几行几列,有多少个不同的值
(2)把具有不同值的行列及值记录在一个小规模的数组中,从而缩小程序的规模
(案例如下所示):
2.二维数组转化为稀疏数组的思路
(1)遍历原始的二维数组,得到有效数据的个数sum
(2)根据sum就可以创建稀疏数组spareArr int[sum+1][3]
(3)将二维数组的有效数据存入稀疏数组中
代码如下:
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
public class sparseArray {
public static void main(String[] args) {
// TODO 自动生成的方法存根
//创建一个原始的二维数组11*11
//0:表示没有棋子,1表示黑子,2表示蓝子
int chessArr1[][]=new int[11][11];
chessArr1[1][2]=1;
chessArr1[2][3]=2;
//输出原始的二维数组
for(int[] row:chessArr1)
{
for(int data:row)
{
System.out.printf("%d\t",data);
}
System.out.println();
}
//增强for没有下标
//将二维数组转换稀疏数组
//1、先遍历2二维数组得到非0数据的个数
int sum=0;
for(int i=0;i<11;i++)
{
for(int j=0;j<11;j++