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

情感视频素材网站vps推荐

情感视频素材网站,vps推荐,贵阳市住房城乡建设局八大员网站,黑彩网站充值就给你做单子目录 1.稀疏数组 2.稀疏数组的使用 2.1 二维数组转换为稀疏数组 2.2 稀疏数组转换为二维数组 1.稀疏数组 稀疏数组(Sparse Array):当一个数组中的大部分元素为相同的值,可使用稀疏数组来保存该数组,可以将稀疏数组…

目录

1.稀疏数组

2.稀疏数组的使用

2.1 二维数组转换为稀疏数组

2.2 稀疏数组转换为二维数组


1.稀疏数组

稀疏数组(Sparse Array):当一个数组中的大部分元素为相同的值,可使用稀疏数组来保存该数组,可以将稀疏数组看做是普通数组的压缩

例如

 数组arr中许多值为0,若对二维数组直接进行存储,则会存储许多相同的数值0,造成空间的浪费,此时,我们可以用稀疏数组对其进行存储

2.稀疏数组的使用

要对二维数组进行存储,我们需要知道二维数组的行和列不同数值的数量以及不同元素的位置和值

稀疏数组的第一行,存放二维数组arr的行数、列数、不同数值的数量sum

 后面几行,存放不同值元素在二维数组arr中的行、列、数值

代码实现

创建二维数组

 int[][] arr = new int[6][5];arr[1][0] = 1;arr[1][3] = 6;arr[4][3] = 2;

2.1 二维数组转换为稀疏数组

(1)遍历二维数组,确定不同元素的个数sum

        int sum = 0;for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[0].length; j++) {if(arr[i][j] != 0){sum++;}}}

(2)根据sum创建稀疏数组

int[][] sparseArr = new int[sum+1][3];

(3) 遍历二维数组,对稀疏数组进行赋值

//稀疏数组的第一行分别存放二维数组的行数、列数以及不同元素的个数sparseArr[0][0] = arr.length;sparseArr[0][1] = arr[0].length;sparseArr[0][2] = sum;//再对不同元素进行存储int k = 0;for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[0].length; j++) {if(arr[i][j] != 0){k++;//分别存放不同元素的行、列以及数值sparseArr[k][0] = i;sparseArr[k][1] = j;sparseArr[k][2] = arr[i][j];}}}

2.2 稀疏数组转换为二维数组

(1)创建二维数组

int[][] arr1 = new int[sparseArr[0][0]][sparseArr[0][1]];

(2)遍历稀疏数组, 对不同值元素进行赋值

        //遍历稀疏数组,对不同值元素进行赋值for (int i = 1; i < sparseArr.length; i++) {arr1[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];}

 

完整代码

public class Test {public static void main(String[] args) {//创建二维数组int[][] arr = new int[6][5];arr[1][0] = 1;arr[1][3] = 6;arr[4][3] = 2;System.out.println("****二维数组****");for (int[] row: arr) {for (int data: row) {System.out.printf("%d ",data);}System.out.println();}int sum = 0;for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[0].length; j++) {if(arr[i][j] != 0){sum++;}}}//创建稀疏数组int[][] sparseArr = new int[sum+1][3];//稀疏数组的第一行分别存放二维数组的行数、列数以及不同元素的个数sparseArr[0][0] = arr.length;sparseArr[0][1] = arr[0].length;sparseArr[0][2] = sum;//再对不同元素进行存储int k = 0;for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[0].length; j++) {if(arr[i][j] != 0){k++;//分别存放不同元素的行、列以及数值sparseArr[k][0] = i;sparseArr[k][1] = j;sparseArr[k][2] = arr[i][j];}}}System.out.println("****稀疏数组****");for (int[] row: sparseArr) {for (int data: row) {System.out.printf("%d ",data);}System.out.println();}//创建二维数组int[][] arr1 = new int[sparseArr[0][0]][sparseArr[0][1]];//遍历稀疏数组,对不同值元素进行赋值for (int i = 1; i < sparseArr.length; i++) {arr1[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];}System.out.println("****二维数组****");for (int[] row: arr1) {for (int data: row) {System.out.printf("%d ",data);}System.out.println();}}
}

运行结果

http://www.yayakq.cn/news/232064/

相关文章:

  • 单页网站 开元志愿服务网站建设方案
  • 做网站销售有前景wordpress 分类目录 页面
  • 国内优秀网页设计网站更改了网站关键词后要怎么做
  • 网站设计主色学校muse 转 wordpress主题
  • 网站设计公司苏州做网站网页挣钱不
  • C4D有哪些做模型的网站常州外贸网站
  • 简述网站制作的过程做推广哪个网站好
  • 中文电子商务网站模板c2c十大平台
  • 网站制作网站开发做百度移动端网站软件
  • p2p网站开发用什么平台邢台市桥西住房建设局网站
  • 网站备案期间做网页图片编辑器免费版
  • wordpress站点使用期限插件天助网的网站
  • 织梦网站后台模板东莞网站建设服务
  • 怎么做签到网站京东网站开发技术
  • 服装定制官网淄博seo费用
  • 福田网站建设龙岗网站建设龙岗网站建设百度公司注册地址在哪里
  • 新闻热点家庭优化大师下载
  • 家居企业网站建设市场适配移动网站
  • 临沂做网站优化上海网站 备案查询
  • 校园网站建设报价动易网站 首页模板修改
  • 网站建设海报沧州建设工程信息网
  • 医院网站怎么做优化排名北京网站建设有限公司
  • 蓝色通用营销型企业网站模板wordpress添加php页面
  • 北京市建设厅网站首页WordPress点击出现爱心
  • 做网站用lunx品牌形象
  • 永德网站建设网站建设服务器主板1150针
  • 基于h5的个人网站建设免费织梦导航网站模板下载
  • 怎么查看网站备案进度内蒙古住房城乡建设厅网站
  • 手机网站搭建多少钱网站建设推广顾问是什么意思
  • 上海商务网站建设网站推广渠道的类型