java为什么要学习数组_为什么要学习数组排序?我们要学习它的精髓和思想学会举一反三...

JAVA基础知识在前面的文章中也介绍了很多,无论是数据结构还是算法都有讲到过,对于初学JAVA的同学来说,排序是一个并不陌生的基础知识点。由于有的同学可能刚接触JAVA语言,可能对其中的一些知识点不是很了解,或者能够敲出大部分代码,但在运行的时候会出现错误,又或是对这些代码根本就不理解。那么可以参考一下前面部分文章对JAVA基础知识的一些讲解,来更好的了解JAVA语言。今天的文章我们就着重介绍一下数组排序的两种方法:选择排序和冒泡排序。

a9038facb62006b246ec2893840df738.png

其实这些排序在日常编码中很少能够直接的使用,那么我们为什么还要专门的介绍排序呢?其实还是主要的为了学习一种思想,可能在后面的业务逻辑中会使用到,我们理解了这种精髓,了解它的思想,能够让我们在以后的工作学习中可以举一反三。

问题:

创建程序,实现对数组中元素的排序,使用选择排序法对数组元素进行从小到大排序,使用冒泡排序方法对数组元素进行从大到小排序,并把排序的过程输出打印。

18f5e922adaf08dc76a988a90bd9218a.png

方案:

我们假设有一个长度为n(n≧2)的数组,数组元素为无序状态

使用选择排序进行升序排序:选择排序的原理即让数组中的每一个元素与后面的元素进行比较,如果违反最后的顺序准则就进行交换。

首先使用第一个元素与数组的其他元素进行比较,若出现小于第一个元素的其他元素,则互换位置,进行第二轮比较,亦从第一个元素开始进行比较,若出现比其小的元素则互换位置,直到第一个元素确定为最小的元素后,第一个元素不在进行比较。

然后使用第二个元素与后面的元素一一比较,方法与第一个元素的比较相同。直到最后一个元素比较完成,整个数组的排列完成;

使用冒泡排序进行降序排序:冒泡排序的原理即让数组中相邻的元素进行比较,如果违反最后的顺序准则就进行交换。

首先,我们把数组中相邻的两个元素进行两两比较,把最小的元素找出放到最后一个位置,不在变动,然后进行第二轮比较,最小元素放到倒数第二个位置上,以此类推直到所有元素排序完成。

步骤

步骤一:定义类及main方法

首先定义一个名为arraySort的类,并在类中添加Java应用程序主方法main。

步骤二:创建数组

在main方法中创建一个长度为10的数组,并使用for语句构建一个10次的循环,在每次循环中,随机产生一个0到99之间的整数,并存入数组,然后打印数组的内容显示在界面上。此案例中使用Randmon类的nextInt()方法产生随机数。

9a4c568e93a2a9d96e0daa7019e3cb6e.png

此步骤中需要导入java.util包下的Random类和Arrays类

步骤三:选择排序

使用选择排序算法对数组进行排序:每一轮比较中,每一个元素与其后面的元素一一比较,若出现小于该元素的其他元素则交换位置,直到每一个元素都比较过一遍。为了查看排序的过程,将每轮比较后的内容输出显示,并将最后的结果输

51e9dd7987cf3bb9703664c813cc6197.png

步骤四:冒泡排序

使用冒泡排序的算法对数组进行排序,每一轮中,两两比较,找到最小的元素移动到最后,直到都比较过一遍,为了便于查看排序过程,将每轮比较后的数组内容输出显示,并将最后的结果输出

5fd5b9c6a32dec289638769f903249a8.png

通过上述步骤我们实现了通过选择排序对数组进行升序排序和通过冒泡排序对数组进行降序排序,在排序的过程中我们使用到了for循环,if判断等知识点。此案例的主要目的是让我们去学习其中的思想和精髓,不要为了排序而去排序。

知识无限,能力有限。小编在文章编辑过程中难免出现不尽人意的地方,欢迎大家批评指正,小编也将不断积累完善自己,让我们共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值