什么是冒泡排序算法?如何优化?

Posted Peter的小宇宙

tags:

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

冒泡排序是最基础,最简单的排序算法。虽然这种算法效率比较低,但是可以快速编写,在排序元素比较少时比较管用。

我们来看一下,假如有一个数组,里面有5个元素,分别是5,7,1,3,2。我们想把他们从小到大排列出来,那需要怎么做呢?我们可以这样操作:依次比较邻近的2个元素,把小的那个数挪到左边。

什么是冒泡排序算法?如何优化?

比如首先比较第一对数5和7,因为他们顺序正确,所以不需要换位置。接着看第二对数7和1,我们就需要把1挪到左边来。第三对数7和3,我们就需要把3挪到左边来。最后一对7和2,我们再把他们顺序挪一下。

什么是冒泡排序算法?如何优化?

这样就完成了一次计算,数组由5,7,1,3,2变成了5,1,3,2,7。在这过程中,数字7一直向上移动,好像水中的气泡往上升一样,所以这种排序被称为冒泡排序。

什么是冒泡排序算法?如何优化?

我们来总体算一下,第一次循环,会把最大的数挪到正确位置。但因为有5个元素,所以我们需要再循环3次,依次变成13257,12357,12357,这4个元素就正确排列好了。每一次循环,我们需要对比4次,同时我们共循环了4轮,所以,我们一共需要对比4+4+4+4=16次。

什么是冒泡排序算法?如何优化?

那有什么办法,可以优化一下吗?因为每一轮循环,末尾的数字就已经排列好了,不需要再进行对比,所以,我们就只需要对比4+3+2+1=10次。这样排序算法就能更快一点了。

什么是冒泡排序算法?如何优化?

感觉还是有点多,我们还可以再次优化,我们看第三次循环,其实这个数组就已经按顺序排列好了,没有必要再进行第四次循环对比。所以我们可以进行检测,如果在某次循环中,数组中没有任何元素需要挪动位置,就不要再进行对比了。所以,我们就只需要对比4+3+2=9次。

感谢大家观看!欢迎关注、评论、点赞三连


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

66. 冒泡排序如何实现?如何优化?

如何优化冒泡排序?

冒泡排序算法以及它的优化方案

面试必考算法题之冒泡排序 (优化脱坑版)!

冒泡排序以及冒牌排序优化算法

冒泡排序,算法以及优化