美文网首页
经典的三种基础排序算法Java实现

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

作者: 风也醉 | 来源:发表于2019-06-15 16:26 被阅读0次

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

    一、选择排序   

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

    选择排序

    具体java代码实现为:

    选择排序方法 交换方法

    main方法如下:

    main和打印方法

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

    选择排序后结果

    二、插入排序

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

    插入排序过程

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

    插入排序方法

    三、冒泡排序

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

    冒泡排序过程

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

    冒泡排序方法 结果

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

    相关文章

      网友评论

          本文标题:经典的三种基础排序算法Java实现

          本文链接:https://www.haomeiwen.com/subject/ltmbfctx.html