经典的三种基础排序算法Java实现

2019-06-15  本文已影响0人  风也醉

选择排序(Selection sort)、插入排序(Insertion sort)与气泡排序(Bubble sort)这三个排序方式是初学排序所必须知道的三个基本排序方式,虽然它们由于速度不快而不实用,平均与最快的时间复杂度都是O(n^2),然而它们排序的方式确是值得观察与探讨的。下面我们依次来看下这三种排序方式的实现。

一、选择排序   

选择排序的主旨是:将要排线的对象分为两个部分,一个是已排序的,一个是未排序的,从后端未排序的选择一个最小值,放入前端已排序部分的最后一个,如下图

选择排序

具体java代码实现为:

选择排序方法 交换方法

main方法如下:

main和打印方法

结果显示如下图,可以看到已经排序成功了:

选择排序后结果

二、插入排序

插入排序就像是玩朴克一样,我们将牌分作两堆,每次从后面一堆的牌抽出最前端的牌,然后插入前面一堆牌的适当位置,例如:

插入排序过程

具体方法如下,在main方法中运行,同样调用injectionSort() 即可得到结果

插入排序方法

三、冒泡排序

顾名思义,就是排序时,最大的元素会如同气泡一样移至右端,其利用比较相邻元素的方法,将大的元素交换至右端,所以大的元素会不断的往右移动,直到适当的位置为止。基本的气泡排序法可以利用旗标的方式稍微减少一些比较的时间,当寻访完阵列后都没有发生任何的交换动作,表示排序已经完成,而无需再进行之后的回圈比较与交换动作,例如:

冒泡排序过程

当进行至i与i+1时没有交换的动作,表示接下来的i+2至n已经排序完毕,这增加了冒泡排序的效率。 具体方法如下图:

冒泡排序方法 结果

到此结束!如果您喜欢的话就点个赞吧!

上一篇下一篇

猜你喜欢

热点阅读