APP下载

JAVA玩转数学之二维数组排序

2020-07-15

电脑报 2020年24期
关键词:数组表达式排序

长期看我们报纸的读者应该了解了基本的冒泡法或选择法排序,但这都是在一维数组的基础上进行的。今天给大家讲一讲二维数组排序的知识。

首先什么是一维数组呢?一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。类型标识符:数组名[常量表达式]。

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,類型说明符:数组名[常量表达式][常量表达式]。

二维数组又称为矩阵,行列数相等的矩阵称为方阵。

对称矩阵:a[i][j] = a[j][i]

对角矩阵:n阶方阵主对角线外都是零元素

二维数组中的数字以矩阵的方式,“I”代表行数,“J”代表列数,例如图1矩阵中a[0][0]就是代表85。

今天我们用JAVA处理二维数组从小到大排序。首先在JAVA语言中已经定义了很多可用的方法,比如把数组中的内容打印出来,可以使用Arrays的toString方法,只需要一行直接省略了以往的循环语句就能打印出来。而且JAVA自带排序,使用Arrays.sort方法就可以直接进行数组从小到大的排序。

那么接下来我们需要解决的问题就是,怎样将二维数组进行从小到大的排序。

最容易想到的办法是将二维数组转化为一维数组,这里介绍两种转换方法。

1. 【arraycopy(Object src, int srcPos, Object dest, int destPos, int length)】

src代表原数组;srcPos代表从元数据的起始位置开始;dest代表目标数组;destPos代表目标数组的起始位置;length代表要copy的数组的长度。

2. 还有一种比较考验数学能力的方法。二位数组是:数组名[常量表达式][常量表达式]。

相应的转化公式为

num2[i*4+j]=num1[i][j];

这个方法比较通用,需要你有一定的数学基础,转一个思路就肯定可以想出来了(如图2)。

二维数组转成一维数组还是有一定的难度的,适合有编程基础的人,大家也需要努力学习,快乐编程。

代码如图3,运行效果如图4。

猜你喜欢

数组表达式排序
JAVA稀疏矩阵算法
恐怖排序
灵活选用二次函数表达式
节日排序
更高效用好 Excel的数组公式
倍增法之后缀数组解决重复子串的问题
寻找勾股数组的历程
议C语言中循环语句
怎样确定一次函数表达式