目录
一、稀疏数组基本介绍
- 一、稀疏数组基本介绍
- 二、稀疏数组的处理方法
- 三、稀疏数组举例说明
- 四、示例需求
- 五、示例代码
- 五、输出结果
- 当一个数组中大部分元素为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
关注
打赏
热门博文
- Netty——网络编程 NIO(Selector处理accept事件)代码示例
- CompletableFuture异步编排(多任务组合)
- CompletableFuture异步编排(线程串行化代码示例)
- CompletableFuture异步编排(handle最终处理)
- CompletableFuture异步编排(计算完成回调代码示例)
- hutool工具导出excel代码示例
- java 获取音频、视频文件时长代码示例
- PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)
- Rabbitmq与Erlang安装包下载图解
- idea2021.1版本SpringBoot项目日志的说明及使用