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

狗爹域名网站/百度网络营销app

狗爹域名网站,百度网络营销app,建筑网建设通网站作用是什么,网站建设合同简单模板Java数据结构—稀疏数组问题引入二维数组与稀疏数组二维→稀疏代码实现稀疏→二维代码实现课后练习问题引入 要用一个数组将下图所示情况进行抽象表示 可以用如下一个数组进行表示 但这样的弊端很明显:重复的0元素太多并且得到11*11的一个庞大的矩阵 所以可以引入…

Java数据结构—稀疏数组

  • 问题引入
  • 二维数组与稀疏数组
    • 二维→稀疏
    • 代码实现
    • 稀疏→二维
    • 代码实现
  • 课后练习

问题引入

要用一个数组将下图所示情况进行抽象表示
在这里插入图片描述
可以用如下一个数组进行表示
在这里插入图片描述
但这样的弊端很明显:重复的0元素太多并且得到11*11的一个庞大的矩阵
所以可以引入稀疏数组简化数据的表示:

rowcolval
11112
121
232

这样就得到了一个3*3的矩阵,这个数组表示较前者简洁许多

二维数组与稀疏数组

二维→稀疏

  1. 遍历原始的二维数组,得到有效数据的个数sum
  2. 根据sum创建sparseArr int[sum+1][3]
  3. 将二维数组的有效数据存入到稀疏数组中

代码实现

 public class sparesArr {public static void main(String[] args) {//创建一个原始的二维数组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();}//先遍历二维数组,得到非0数据的个数int sum = 0;for(int i =0;i<11;i++){for(int j = 0;j<11;j++){if(chessArr1[i][j] != 0){sum++;}}}//创建对应的稀疏数组int sparesArr[][] = new int[sum + 1][3];//给稀疏数组赋值sparesArr[0][0] = 11;sparesArr[0][1] = 11;sparesArr[0][2] = sum;//遍历二维数组,将非0的值存放到sparseArr中int count = 0 ;for(int i = 0;i<11;i++){for(int j = 0;j<11;j++){if(chessArr1[i][j] != 0){count++;sparesArr[count][0] = i;sparesArr[count][1] = j;sparesArr[count][2] = chessArr1[i][j];}}}//输出稀疏数组的形式System.out.println();System.out.println("稀疏数组:");for(int i= 0;i<sparesArr.length;i++){System.out.printf("%d\t%d\t%d\t\n",sparesArr[i][0],sparesArr[i][1],sparesArr[i][2]);}}
}

稀疏→二维

1.先读取稀疏数组的第1行 ,根据第1行的数据创建原始的二维数组
2.再读取稀疏数组后几行的数据,并赋给原始的二维数组即可

代码实现

public class sparesArr {public static void main(String[] args) {//创建一个原始的二维数组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();}//先遍历二维数组,得到非0数据的个数int sum = 0;for(int i =0;i<11;i++){for(int j = 0;j<11;j++){if(chessArr1[i][j] != 0){sum++;}}}//创建对应的稀疏数组int sparesArr[][] = new int[sum + 1][3];//给稀疏数组赋值sparesArr[0][0] = 11;sparesArr[0][1] = 11;sparesArr[0][2] = sum;//遍历二维数组,将非0的值存放到sparseArr中int count = 0 ;for(int i = 0;i<11;i++){for(int j = 0;j<11;j++){if(chessArr1[i][j] != 0){count++;sparesArr[count][0] = i;sparesArr[count][1] = j;sparesArr[count][2] = chessArr1[i][j];}}}//输出稀疏数组的形式System.out.println();System.out.println("稀疏数组:");for(int i= 0;i<sparesArr.length;i++){System.out.printf("%d\t%d\t%d\t\n",sparesArr[i][0],sparesArr[i][1],sparesArr[i][2]);}///***将稀疏数组恢复成原始的二维数组***/////1、先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组int chessArr2[][] = new int[sparesArr[0][0]][sparesArr[0][1]];//2、读取稀疏数组后几行的数据,赋给原始的二维数组即可for(int i = 1;i< sparesArr.length;i++){chessArr2[sparesArr[i][0]][sparesArr[i][1]] = sparesArr[i][2];}//输出恢复后的二维数组System.out.println();System.out.println("恢复后的二维数组:");for(int[] row : chessArr2){for(int data:row){System.out.printf("%d\t",data);}System.out.println();}}
}

课后练习

要求:
1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data
2)恢复原来的数组时,读取map.data 进行恢复

http://www.lbrq.cn/news/1461223.html

相关文章:

  • 微信开发网站/上海网站推广广告
  • 百姓网创建不了位置交易地点/seo教程有什么
  • 江苏建设网站公司/凡科建站和华为云哪个好
  • 免费b站不收费网站2023/哈尔滨关键词优化方式
  • 网站开发笔记/问卷调查网站
  • 网站建设用什么软件/网络营销方法
  • 有哪些程序网站/百度关键词搜索量统计
  • 济南 规划 网站/seo系统源码出售
  • 电视剧下载网站 免费糖醋蒜怎样做/扬州seo
  • 国内优秀网站设计师/武汉seo报价
  • 装饰公司怎样做网站/打开百度搜索网站
  • 什么做直播网站好/广东vs北京首钢
  • 企业网站跟微信支付怎么做/阿里云免费域名
  • 常州市天宁区建设局网站/百度网盘24小时人工电话
  • 东莞网站推广流程/网站开发建站
  • 安卓app开发模板/化工seo顾问
  • 哪家网站建设公司比较好/最近几天新闻大事
  • 温州哪里有网站建设/楼市最新消息
  • wordpress 侧边栏浮动/百度小程序优化排名
  • 电子商务网站建设交印花税吗/广州营销推广
  • 网站前端用什么做/巨量千川广告投放平台
  • 求一个用css写的点击左边导航栏右边显示内容的网站/seo搜索引擎优化岗位要求
  • 贵阳做网站优化/百度关键词优化师
  • 做的网站里面显示乱码怎么解决方法/ip网站查询服务器
  • 电商网站建设包括哪些内容/百度ai助手入口
  • wordpress audio/企业seo推广
  • 做网站数据存在哪里/百度下载app下载安装
  • 关于dw做网站/贵州二级站seo整站优化排名
  • 闵行区建设和管理委员会网站/抖音seo搜索引擎优化
  • 企业集团网站建设方案/新郑网络推广外包
  • 基于springboot的在线考试系统/考试信息管理平台
  • 井盖识别数据集-2,700张图片 道路巡检 智能城市
  • kafka 是一个怎样的系统?是消息队列(MQ)还是一个分布式流处理平台?
  • 【LeetCode刷题指南】--二叉树的后序遍历,二叉树遍历
  • 【1】WPF界面开发入门—— 图书馆程序:登录界面设计
  • LangGraph认知篇-Command函数