
稀疏数组
发布日期:2021-05-09 01:52:31
浏览次数:8
分类:博客文章
本文共 1922 字,大约阅读时间需要 6 分钟。
稀疏数组
当一个数组中的元素大部分为零或者为同一值时,可以使用稀疏数组来保存这个数组
稀疏数组的处理方式:
记录数组一共有几行几列,有多少个不同值
把具体不同值的元素和行列及至值记录在一个小规模的数组中,从而缩小程序的规模
稀疏数组可以理解为对于零或者大都相同的数据不作记忆,对于特别的数据运用简单的数组单独记忆,包括 行 列 值,三部分。
- 先确定元素个数,由元素个数定义简单数组的行(要+1,第零行需要记录原数组的行数 列数 非零元素个数) 列。一般为三列,分别记录非零元素的横坐标,纵坐标,元素本身的值。
- 运用循环对元素进行筛选,对于满足的元素存入行 列 值,注意需要定义一个值count用来记录存入到了第几行了
eg:
原始数组:
0 0 0 22 0 0 15
0 11 0 0 0 17 0
0 0 0 -6 0 0 0
0 0 0 0 0 39 0
91 0 0 0 0 0 0
0 0 28 0 0 0 0
稀疏数组:
行 / 列 /**** 值
[0] 6 7 8
[1] 0 3 22
[2] 0 6 15
[3] 1 1 11
[4] 1 5 17
[5] 2 3 -6
[6] 3 5 39
[7] 4 0 91
[8] 5 2 28
举例:
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 11*11的棋盘,1代表黑棋,2代表白棋
存入稀疏数组内,先使用普通数组存储。
import java.util.Arrays;public class Array04 { public static void main(String[] args) { int[][] array=new int[11][11]; for (int i = 0; i
由稀疏数组转普通数组!
eg:
package shiyan1;import java.util.Arrays;public class Arra { public static void main(String[] args) //稀疏数组 转 普通数组 { int[][] array=new int[3][3]; array[0][0]=11; array[1][0]=1; array[0][1]=11; array[1][1]=2; array[0][2]=2; array[1][2]=1; array[2][0]=2; array[2][1]=3; array[2][2]=2; int count=1; int[][] array01=new int[array[0][0]] [array[0][1]]; for (int i = 0; i < array[0][0]; i++) {//初始化普通数组 for (int j = 0; j2) //count=3时所有数据已经转入,继续循环会产生越界 break l; } } } for (int i = 0; i < 11 ; i++) { for (int j = 0; j <11 ; j++) { //输出 System.out.print(array01[i][j]+"\t"); } System.out.println(); } }
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月08日 17时14分17秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
为什么阿里巴巴要求谨慎使用ArrayList中的subList方法
2019-03-06
Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?
2019-03-06
基于Python的Appium环境搭建合集
2019-03-06
Requests实践详解
2019-03-06
接口测试简介
2019-03-06
Golang Web入门(4):如何设计API
2019-03-06
让sublime实现js控制台(前提是安装了nodejs)
2019-03-06
树莓派连接二手液晶屏小记
2019-03-06
error: 'LOG_TAG' macro redefined
2019-03-06
android10Binder(一)servicemanager启动流程
2019-03-06
ES6基础之——new Set
2019-03-06
nodeJS实现识别验证码(tesseract-ocr+GraphicsMagick)
2019-03-06
玩玩小爬虫——试搭小架构
2019-03-06
AS与.net的交互——加载web上的xml
2019-03-06
Javascript之旅——第八站:说说instanceof踩了一个坑
2019-03-06
Javascript之旅——第九站:吐槽function
2019-03-06
Javascript之旅——第十一站:原型也不好理解?
2019-03-06
Sql Server之旅——第十站 看看DML操作对索引的影响
2019-03-06
十五天精通WCF——第二天 告别烦恼的config配置
2019-03-06