广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java轻松实现二维数组与稀疏数组互转
  • 467
分享到

Java轻松实现二维数组与稀疏数组互转

2024-04-02 19:04:59 467人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录二维数组稀疏数组1、稀疏算法的基本介绍2、稀疏算法的处理方式二维数组转稀疏数组的思路二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,

二维数组

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。

稀疏数组

1、稀疏算法的基本介绍

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。从而减少计算机不必要的内存开销。

2、稀疏算法的处理方式

(1)数组中第一行记录原始数组中一共有几行几列,有多少个不同的值。
(2)把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。

二维数组转稀疏数组的思路

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

稀疏数组转原始的二维数组的思路:

  • 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组,比如上面的chessArr2=int[11][11]
  • 再读取稀疏数组后几行的数据,并赋给原始的二维数组即可

写一个二维数组:

//1.创建一个二维数组
int chessArr1[][]=new int[11][11];
//2.给二维数组赋值
chessArr1[1][2]=1;
chessArr1[2][3]=2;
//3.双重for循环输出二维数组
System.out.println("原始的二维数组:");
for (int[] row : chessArr1) {
    for (int data : row) {
        System.out.printf("%d\t",data);
    }
    //每输出完一个一重数组换一行
    System.out.println();
}

将二维数组换换位稀疏数组

//将二维数组转稀疏数组
//1.先遍历二维数组,得到非0数据的个数,知道数据个数,就可以创建稀疏数组(知道了稀疏数组的行)
int sum=0;
for (int i = 0; i < 11; i++) {
    for (int j = 0; j < 11; j++) {
        if (chessArr1[i][j]!=0){
            sum++;
        }
    }
}
System.out.println("有效值的个数为:"+sum);
//2.创立对应的稀疏数组
int sparseArr[][]=new int[sum+1][3];
//3.给稀疏数组赋值
sparseArr[0][0]=11;
sparseArr[0][1]=11;
sparseArr[0][2]=sum;
//4.遍历二维数组,给稀疏数组
int count=0;//用于记录是第几行
for (int i = 0; i < 11; i++) {
    for (int j = 0; j < 11; j++) {
        if (chessArr1[i][j]!=0){
            sparseArr[count+1][0]=i;
            sparseArr[count+1][1]=j;
            sparseArr[count+1][2]=chessArr1[i][j];
            count++;
        }
    }
}
//5.输出稀疏数组
//以下是两种遍历方式:

System.out.println("得到稀疏数组为~~~~~");
for (int i = 0; i < sparseArr.length; i++) {
    System.out.printf("%d\t%d\t%d\t\n",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);
}

将稀疏数组还原为二维数组

//把稀疏数组还原为二维数组
//1.创建二维数组
int chessArr2[][]=new int[sparseArr[0][0]][sparseArr[0][1]];
//2.给二维数组赋值
for (int i = 1; i < sparseArr.length; i++) {
    chessArr2[sparseArr[i][0]][sparseArr[i][1]]=sparseArr[i][2];
}
//3.输出二维数组
for (int[] row : chessArr2) {
    for (int data : row) {
        System.out.printf("%d\t",data);
    }
    System.out.println();
}

树越是向往高处的光亮,它的根就越要向下,向泥土向黑暗的深处。

到此这篇关于Java 轻松实现二维数组与稀疏数组互转的文章就介绍到这了,更多相关Java 数组转换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java轻松实现二维数组与稀疏数组互转

本文链接: https://www.lsjlt.com/news/145399.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java轻松实现二维数组与稀疏数组互转
    目录二维数组稀疏数组1、稀疏算法的基本介绍2、稀疏算法的处理方式二维数组转稀疏数组的思路二维数组 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,...
    99+
    2022-11-13
  • Java如何实现二维数组与稀疏数组互转
    这篇文章主要介绍了Java如何实现二维数组与稀疏数组互转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java如何实现二维数组与稀疏数组互转文章都会有所收获,下面我们一起来看看吧。二维数组二维数组本质上是以数组...
    99+
    2023-06-29
  • Java二维数组与稀疏数组相互转换实现详解
    目录一、稀疏数组1、什么是稀疏数组2、图示3、稀疏数组的表达方式二、二维数组→稀疏数组三、稀疏数组→二维数组一、稀疏数组 1、什么是稀疏数组 当一个数组中大部分元...
    99+
    2022-11-13
  • Java数据结构实现二维数组与稀疏数组转换详解
    基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: ①记录数组一共有几行几列,有多少个不同的值(0除外)。 ②把具有...
    99+
    2022-11-12
  • Java实现二维数组和稀疏数组之间的转换
    目录前言 1. 需求和思路分析 2.代码实现和展示 3. 总结 参考视频前言 用Java实现二维数据和稀疏数组之间的转换 1. 需求和思路分析 1.1 以二维数组的格式模拟棋盘、...
    99+
    2022-11-12
  • java怎么将二维数组转化为稀疏数组
    本篇内容主要讲解“java怎么将二维数组转化为稀疏数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么将二维数组转化为稀疏数组”吧!特点它可以压缩数据,减少内存空间的使用。过程记录数组...
    99+
    2023-06-30
  • Java数据结构之稀疏数组的实现与应用
    目录1.稀疏数组引入1.1 使用场景1.2 稀疏数组简介2.稀疏数组的实现2.1 案例概述2.2 思路分析2.3 代码实现1.稀疏数组引入 1.1 使用场景 笔者在课程设计中曾写过一...
    99+
    2022-11-13
    Java 数据结构 稀疏数组 Java 稀疏数组
  • java数据结构中稀疏数组的实现方法
    这篇文章主要讲解了“java数据结构中稀疏数组的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java数据结构中稀疏数组的实现方法”吧!目录稀疏数组:实现思路:举例:二维数组转稀疏数...
    99+
    2023-06-20
  • java二维数组行列互换怎么实现
    要实现Java二维数组的行列互换,可以按照以下步骤进行: 首先确定原始二维数组的行数和列数。假设行数为`m`,列数为`n`。 ...
    99+
    2023-10-28
    java
  • java实现二维数组转置的方法示例
    本文实例讲述了java实现二维数组转置的方法。分享给大家供大家参考,具体如下:这里在文件中创建Test2、Exchange、Out三个类在Exchange类中编写exchange()方法,在方法中创建两个数组arraryA、arraryB,...
    99+
    2023-05-31
    java 二维数组 ava
  • python怎么实现二维数组转置
    要实现二维数组的转置,可以使用嵌套的循环来交换数组中的元素位置。下面是一个示例:```pythondef transpose(mat...
    99+
    2023-08-18
    python
  • php怎么实现二维数组旋转
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php怎么实现二维数组旋转?PHP二维数组矩形转置实例<php //二维数组转置 //定义一个二维数组 $arr =array(array...
    99+
    2014-09-26
    php
  • python如何实现二维数组转换
    这篇文章主要为大家展示了“python如何实现二维数组转换”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现二维数组转换”这篇文章吧。二维数组转...
    99+
    2022-10-19
  • php如何实现二维数组旋转
    这篇文章主要介绍了php如何实现二维数组旋转,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php实现二维数组旋转的方法:1、创建一个PHP示例文件;2、定义一个二维数组;3、...
    99+
    2023-06-22
  • 改写函数实现PHP二维/三维数组转字符串
    由于工作需要,自己在手册给定的示例函数基础上改写出了这样一个函数,代码如下: 复制代码 代码如下: //将多维数组中所有的数值转换成字符串————》最多支持三维数组 function...
    99+
    2022-11-15
    二维数组 三维数组 数组转字符串
  • Java二维数组实现数字拼图效果
    二维数组实现数字拼图,供大家参考,具体内容如下 二维数组可以自己随意定义大小,通过方法判断来实现对所有的数字进行随机打乱,并可以通过移动来正确还原,并可以判断0(表示空格)是否可以移...
    99+
    2022-11-12
  • Java数组与二维数组及替换空格实战真题讲解
    目录数组中重复的数字题目描述思路详解代码与结果二维数组中的查找题目描述思路详解代码与结果替换空格题目描述思路详解代码与结果数组中重复的数字 题目描述 思路详解 本题的思路比较简单,...
    99+
    2022-11-13
  • Java实战小技巧之数组与list互转
    目录前言I. 数组转 List1. Array.asList1.1 知识点2. new ArrayList2.1 避雷预警3. Collections.addAllII. 列表转数组...
    99+
    2022-11-12
  • Java怎么实现将二维数组转化为链式储存
    本篇内容介绍了“Java怎么实现将二维数组转化为链式储存”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!链式存储结构链式存储结构的线性表将采用...
    99+
    2023-06-22
  • Java二维数组怎么实现数字拼图效果
    本篇内容主要讲解“Java二维数组怎么实现数字拼图效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java二维数组怎么实现数字拼图效果”吧!二维数组实现数字拼图,供大家参考,具体内容如下二维数...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作