排序算法之——冒泡排序

Posted 趣知学园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法之——冒泡排序相关的知识,希望对你有一定的参考价值。

      排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据序列调整为“有序”的数据序列(递增或递减)。将元素按从小到大的顺序排列称为升序排列,反之称为降序排列。

     排序的应用非常广泛,在实践中,人们设计出了许多好的算法,如交换排序、插入排序、以及选择排序等等。各种算法有其自身的特点与适用范围,今天我们来学习其中一种:冒泡排序


算法简述:

    “冒泡法排序”也叫“起泡法排序” ,是一种比较简单、易懂的交换排序方法,它是一个通过扫描无序序列依次比较相邻元素并进行交换,逐步将无序序列排列为一个有序序列的过程。


所谓“冒泡”:

      如果我们把一个数组的一端(假设:数组最后一个元素所在的位置)比做水底而把另一端(数组第一个元素所在的位置)想像成水面,不断把较小的数据移向一端或把较大的数据移向另一端,最终就可以得到排好序的数组。在这种排序的过程中,大的数就如气泡一样逐层下沉,而小的数逐个上浮,因此被形象地比喻成“冒泡”,故称为冒泡法。


 算法特点:     

     冒泡排序的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(n logn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具备稳定性。


原理展示:


以上是关于排序算法之——冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

排序算法之交换排序(冒泡排序快速排序)

算法排序算法之冒泡排序

排序算法之交换排序(冒泡排序快速排序)

排序算法之冒泡排序Java实现