目录
一、稀疏数组基本介绍
- 一、稀疏数组基本介绍
- 二、稀疏数组的处理方法
- 三、稀疏数组举例说明
- 四、示例需求
- 五、示例代码
- 五、输出结果
- 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。
- 记录数组一共有几行几列,有多少个不同的值
- 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模
下图中左侧的五子棋程序可以看做右侧的一个11x11(11行x11列)的二维数组,其中,黑色棋子用1表示,蓝色棋子用2表示,没有棋子用0表示,该二维数组的很多值是默认值0, 因此记录了很多没有意义的数据,因此,需要把二维数组转换成稀疏数组,在把稀疏数组恢复成二维数组。
package com.rf.springboot01.dataStructure;
/**
* @description: 稀疏数组
* @author: xiaozhi
* @create: 2020-07-14 13:48
*/
public class SparseArray {
public static void main(String[] args) {
/**
* @Description: 创建一个原始的二维数组思路 11*11(即11行11列)
* 1、遍历原始的二维数组,得到有效数据的个数sum
* 2、根据sum就可以创建稀疏数组sparseArray int[sum+1][3]
* 3、将二维数组的有效数据存入到稀疏数组
* @Author: xz
* @Date: 2020/7/14 14:47
*/
//0:表示没有棋子,1:黑色棋子,2:白色棋子
int chessArr[][] =new int[11][11];
//在第2行3列位置上有一个黑色棋子,第3行5列上有一个白色棋子
chessArr[1][2]=1;
chessArr[2][4]=2;
chessArr[5][7]=2;
//输出原始的二维数组
System.out.println("输出原始二维数组=================");
for(int[] row:chessArr){
for(int data:row){
System.out.printf("%d\t",data);
}
System.out.println();
}
/**
* @Description: 将二维数组转换成稀疏数组思路
* @Author: xz
* @Date: 2020/7/14 14:47
*/
//1、先遍历二维数组,得到非0数据的个数
int sum =0;
for (int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?