当前位置: 首页 > news >正文

五、稀疏数组

五、稀疏数组

介绍:

  • 当一个数组中大部分元素为0,或者为同一值时,可以的使用稀疏数组来保存该数组。

  • 稀疏数组的处理方式是:

    • 记录数组一共有几行几列,有多少个不同的值
    • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
  • 如下图,左边是原始数组,右边是稀疏数组

    稀疏数组

package com.huang.array;public class ArrayDemo07 {public static void main(String[] args) {//1、创建一个二维数组11*11(0:没有棋子, 1:黑棋, 2:白棋)int[][] array1=new int[11][11];array1[1][2]=1;array1[2][3]=2;//输出原始的数组System.out.println("输出原始的数组");for (int[] ints : array1) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}System.out.println("========================================");//转换为稀疏数组保存//获取有效值个数int sum=0;for (int i = 0; i <11 ; i++) {for (int j = 0; j <11 ; j++) {if (array1[i][j]!=0){sum++;}}}System.out.println("有效值个数"+sum);//2、创建一个稀疏数组的数组int[][] array2=new int[sum+1][3];array2[0][0]=11;array2[0][1]=11;array2[0][2]=sum;//遍历二维数组,将非零的值,存放到稀疏数组中int count=0;for (int i = 0; i < array1.length; i++) {for (int j = 0; j < array1[i].length; j++) {if (array1[i][j]!=0){count++;array2[count][0]=i;array2[count][1]=j;array2[count][2]=array1[i][j];}}}//输出稀疏数组System.out.println("稀疏数组");for (int i = 0; i < array2.length; i++) {System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");}System.out.println("========================================");System.out.println("还原");//1、读取稀疏数组int[][] array3=new int[array2[0][0]][array2[0][1]];//2、给其中的元素还原它的值for (int i = 1; i < array2.length; i++) {array3[array2[i][0]][array2[i][1]]=array2[i][2];}//3、打印System.out.println("输出还原的数组");for (int[] ints : array3) {for (int anInt : ints) {System.out.print(anInt+"\t");}System.out.println();}}
}

稀疏数组2

http://www.jsqmd.com/news/1355876/

相关文章:

  • JPEG图像压缩技术详解:从原理到实践
  • RPA 的跨平台部署与统一自动化策略
  • 2026西安代账公司甄选全攻略,深耕本地老牌机构靠谱甄选 - 产品评测官
  • Unity URP屏幕空间描边集成与调优:免费开源方案实战指南
  • Webpack Loader核心原理与实战配置指南
  • 2026年高纯度无水乙醇供应厂家——佛山市常兴新材料有限公司等三家专业制造商综合介绍 - 优企名品
  • 快消进销存软件的未来:从记账工具到智能经营决策引擎
  • 5分钟快速上手:洛雪音乐全网音源配置终极指南
  • 炉石传说HsMod插件:55项实用功能彻底优化你的游戏体验
  • 三、多维数组
  • Windows远程管理神器:Mobaxterm中文版完全指南
  • 毕业设计高效工具链:paperxie一站式解决方案解析
  • 四、Arrays类
  • RPA 实现企业微信外部群消息的 WebSocket 高效监听
  • Vue3与Unity WebGL双向通信:从原理到实践的完整指南
  • openclaw 与AI智能体开发平台有什么区别?2026AionClaw与 OpenClaw横向对比
  • 2026重庆全屋定制怎么选?红星美凯龙菲印全屋高定展厅可探店 - 产品评测官
  • 终极指南:快速免费获取国家中小学智慧教育平台电子课本的完整解决方案
  • Go语言数据类型深度解析:从内存对齐到并发安全,掌握工程实践核心
  • 企业微信Python SDK:高效群发消息实战
  • 2026郴州黄金回收变现避坑全攻略 - 小仙贝贝
  • Three.js HDR环境贴图实战:从原理到实现全局光照与反射
  • 非官方API调用的随机化延迟(Jittering)调度优化
  • aspire-contextualsentence-singlem-biomed 模型原理:从多向量表示到句子级对齐
  • Nexus仓库管理器:从核心概念到企业级部署与配置实战
  • 2026优质精密去毛刺设备厂家**|刀具钝化机、镜面喷砂机行业实力深度测评 - 产品评测官
  • 2026年最新教程:免费拼豆图纸生成器怎么用才省事 - 软件测评小帮手
  • Meta Muse Code 拆解:不拼跑分拼恢复,事件日志如何让编程智能体 24 小时不翻车
  • 2026年深圳GEO服务商选型指南:中小微企业高性价比参考 - 筑云鲸
  • 开源工具RevokeMsgPatcher:让你的聊天消息不再被撤回,技术探索的实用利器