突然资讯网
首页 >> 科技 >> 正文

使用选择排序算法对数组进行排序,了解它的思想

日期:2020-05-11 17:08:09 来源:互联网 编辑:小优 阅读人数:871

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

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

问题:

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

使用选择排序算法对数组进行排序,了解它的思想(图1)

方案:

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

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

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

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

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

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

步骤

步骤一:定义类及main方法

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

步骤二:创建数组

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

使用选择排序算法对数组进行排序,了解它的思想(图2)

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

步骤三:选择排序

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

使用选择排序算法对数组进行排序,了解它的思想(图3)

步骤四:冒泡排序

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

使用选择排序算法对数组进行排序,了解它的思想(图4)

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

使用选择排序算法对数组进行排序,了解它的思想(图5)

本文相关词条概念解析:

排序

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。

网友评论