您的位置 首页 java

Java中常见的排序算法有哪些?——冒泡排序

排序相关的的基本概念

排序:

将一组杂乱无章的数据按一定的规律顺次排列起来。

数据表( data list): 它是待排序 数据对象 的有限集合。

排序码(key):通常数据对象有多个属性域,即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为排序码。每个数据表用哪个属性域作为排序码,要视具体的应用需要而定。

我们常见的一些排序算法,如图所示:

交换排序

交换排序的基本思想是:两两比较待排序记录(数据表)的关键字(排序码),发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。主要包括冒泡排序和快速排序。

现在,我们先一起来看看交换排序 之 冒泡排序

冒泡排序的原理

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

一听到冒泡这个词,大家可能会想到?

对,没错,我们可以把冒泡排序看成生活中冒气泡的方式,从下往上冒,依次把最大或最小的值冒到最顶层。

例如:有一个整型数组int[] nums = {84,83,88,87,61};

其排序后的结果,如图:

接下来,我们更进一步来分析它的比较过程:

冒泡排序的代码实现

i : 控制第几轮,如果5个数,最多就比较4轮,所以i的 索引 从0开始的话,要循环4次,就应该是长度-1

j: 控制每一轮中的元素下标位置,每结束一轮,就会出来一个当前这轮中的最大值,则减i,之所以再减1,是因为最后剩一个元素的时候没有相邻的数与其分组,所以不用再比较了

以上则是交换排序之冒泡排序的算法原理和具体实现步骤,敬请期待java中的其他排序算法

如果大家有问题想了解更多的技术干货可以加朗妹儿微信哟~

文章来源:智云一二三科技

文章标题:Java中常见的排序算法有哪些?——冒泡排序

文章地址:https://www.zhihuclub.com/170127.shtml

关于作者: 智云科技

热门文章

网站地图