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

外贸发货做网站怎么写产品设计招聘

外贸发货做网站怎么写,产品设计招聘,成都地区网站开发成本,wordpress4.9.4 使用教程文章目录 目录 文章目录 前言 一 什么是稀疏数组? 二 稀疏数组怎么存储数据? 三 稀疏数组的实现 总结 前言 大家好,好久不见了,这篇博客是数据结构的第一篇文章,望大家多多支持! 一 什么是稀疏数组? 稀疏数组(Sparse Array)是一种数据结构&a…

文章目录

目录

文章目录

前言

一 什么是稀疏数组? 

二 稀疏数组怎么存储数据?

三 稀疏数组的实现

总结


前言

大家好,好久不见了,这篇博客是数据结构的第一篇文章,望大家多多支持!


一 什么是稀疏数组? 

稀疏数组(Sparse Array)是一种数据结构,用于表示大部分元素值为默认值的数组。在稀疏数组中,只有非默认值的元素被存储,而默认值的元素则被忽略。这样可以节省存储空间,特别适用于稀疏矩阵等大规模数据结构。

稀疏数组通常由三个部分组成:

  1. 原始数组的大小:记录原始数组的行数和列数。
  2. 非默认值元素的个数:记录非默认值元素的个数。
  3. 非默认值元素的位置和值:以二维数组的形式存储非默认值元素的位置和值。

通过使用稀疏数组,可以在存储和传输数据时减少所需的空间和时间。

简单来说,就是压缩数据时使用,稀疏数组同样也是一种数据结构

二 稀疏数组怎么存储数据?

稀疏数组通常由三个部分组成:

  1. 原始数组的大小:记录原始数组的行数和列数。
  2. 非默认值元素的个数:记录非默认值元素的个数。
  3. 非默认值元素的位置和值:以二维数组的形式存储非默认值元素的位置和值。

图解:

稀疏数组的第一行记录的不是元素,而是原数组的行数,列数,非零元素个数。

稀疏数组其他行记录的是原数组非零元素的行列和值

解释的话难免有些不清楚,大家看图即可!

三 稀疏数组的实现

接下来带大家一步步的来实现稀疏数组(按上面图示实现)!

1.首先创建一个六行七列的二维数组 int[][] arr

2.给原数组赋值并遍历

3.创建稀疏数组SpareArr[][]

这三个没什么难度,大家觉得行的可以尝试一下下面的三个,代码给出

int[][] arr = new int[6][7];// 创建数组存入数据并初始化arr[0][3] = 22;
arr[0][6] = 15;
arr[1][1] = 11;
arr[1][5] = 17;
arr[2][3] = -6;
arr[3][5] =39 ;
arr[4][0] =91 ;
arr[5][2] =28 ;
//遍历打印并记录非零元素的个数
int sum = 0;
for (int[] ints : arr) {for (int j = 0; j < arr[0].length; j++) {System.out.print(ints[j] + " ");if (ints[j] != 0) {sum += 1;}}System.out.println();
}// 创建稀疏数组
// 稀疏数组的行为元素的个数+1 因为稀疏数组的第一行记录的是总的元素个数,而不是某一个元素的值
int[][] SpareArray = new int[sum+1][3];

4.给稀疏数组赋值

// 稀疏数组的第一行比较特殊,因此我们不借助循环,直接进行赋值。
SpareArray[0][0] = arr.length;// 原数组的行
SpareArray[0][1] = arr[0].length;// 原数组的列
SpareArray[0][2] = sum;// 原数组中元素的个数//遍历原数组,并将数组中的元素存入稀疏数组中
int count = 0;
for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[0].length; j++) {if(arr[i][j] != 0){// 如果元素不为零,就讲该元素存入稀疏数组中count++;SpareArray[count][0] = i;SpareArray[count][1] = j;SpareArray[count][2] = arr[i][j];}}
}

5.将稀疏数组导入\导出文件

// 创建字符缓冲输出流将稀疏数组保存到文件中
FileOutputStream fos = new FileOutputStream("D:\\系统默认\\桌面\\测试.txt");for (int[] ints : SpareArray) {for (int j = 0; j < SpareArray[0].length; j++) {fos.write(ints[j]);}
}
fos.close();FileInputStream fis = new FileInputStream("D:\\系统默认\\桌面\\测试.txt");
int read1 = fis.read();// 行
int read2 = fis.read();// 列
int read3 = fis.read();// 总个数
count = read3;int[][] newArr = new int[read1][read2];
for (int i = 0; i < count; i++) {read1 = fis.read();read2 = fis.read();read3 = fis.read();newArr[read1][read2] = read3;
}
fis.close();for (int i = 0; i < newArr.length; i++) {for (int j = 0; j < newArr[0].length; j++) {System.out.print(newArr[i][j]+" ");}System.out.println();
}

看着是不是挺简单的,我也这么觉得


总结

就到这了,感谢大家观看!

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

相关文章:

  • 网站开发工程师岗位描述微信小程序 网站开发
  • 贵阳建设网站公司织梦猫html5高端网络服务机构网站模板
  • 石家庄新钥匙建站wordpress for android
  • 网页兼容性 网站开发成都广告推广策划宣传公司
  • 事业单位的网站建设费列哪湖南备案网站建设方案书
  • 用笔记本做网站wordpress谷歌网站地图
  • wordpress对网站排名网站备案在哪查
  • 深圳电商网站公司怎么样在网站做产品推广
  • 哪些公司经常做网站商务网页设计与制作实训总结
  • 做网站的都改行做什么了月夜直播下载
  • 商梦建站网站建设及维护服务技术指标
  • 东莞家具网站建设做测算的网站
  • 网络口碑推广公司合肥百度快速排名优化
  • 东莞企业网站排名成都学校网站建
  • 购物网站创业时是如何做宣传的咸阳网站建设联系电话
  • 适合奖励自己的网站免费软文代发平台
  • 网站做视频的软件叫什么新产品推广方案怎么写
  • 淄博建站哪家好网站维护 关站 seo
  • 微信做兼职什么网站好廊坊网站快照优化公司
  • 松江做移动网站网站建设要程序员吗
  • 网站查外链如何让百度搜索到自己的网站
  • 网站服务器部署广告设计专业就业前景好吗
  • 阿里云建站可不可以备案移动端公众号网站开发
  • 微信内部劵网站怎么做人力资源公司如何做推广
  • 宁波外贸seo网站建设地推网站信息怎么做
  • 网站首页幻灯片代码万盛网站建设
  • 河南省建设厅陈华平官方网站山西网站建设
  • 招聘网站的简历可以做几份做网站的基本步骤
  • 广州制作网站公司哪家好可视化网站建设软件
  • 广州seo网站排名腾讯qq