什么是冒泡排序和鸡尾酒排序?
Posted 蓝桥杯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是冒泡排序和鸡尾酒排序?相关的知识,希望对你有一定的参考价值。
冒泡排序
冒泡排序的每一个元素都可以像小气泡一样,根据自身大小,一点一点向着数组的一侧移动。
冒泡排序算法的原理
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
一般情况下,可以通过下面的动画理解冒泡排序。
现在我们来看一组特殊数据如果使用冒泡排序会怎么样。
将无序数列:2,3,4,5,6,7,8,1,使用冒泡排序使其从小到大排序。
进行逐步分析:
第一轮操作( 8 和 1 交换 )
第二轮操作( 7 和 1 交换 )
第三轮操作( 6 和 1 交换 )
第四轮操作( 5 和 1 交换 )
第五轮操作( 4 和 1 交换 )
第六轮操作( 3 和 1 交换 )
第七轮操作( 2 和 1 交换 )
仔细观察上面的这组无序数列,实际上只有 1 的位置不在该在的位置,而 2 ,3 ,4 ,5 ,6 ,7 ,8 都已经有序了,结果使用冒泡排序,需要 折腾 7 次 才能将 1 归位。
鸡尾酒排序
鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序或快乐小时排序,是冒泡排序的一种变形。
此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。
排序过程:
先对数组从左到右进行冒泡排序(升序),则最大的元素去到最右端
再对数组从右到左进行冒泡排序(降序),则最小的元素去到最左端
以此类推,依次改变冒泡的方向,并不断缩小未排序元素的范围,直到最后一个元素结束
Show Me The Animation
第一轮操作( 8 和 1 交换 )
第二轮操作 ( 从序列右边开始遍历 )
第三轮操作 ( 从左向右比较和交换 )
在这一轮操作中,没有元素位置交换,证明已经有序,排序结束。对比 冒泡排序 ,鸡尾酒排序只需要 3 轮操作就可以完成排序。
好文章那么多,千万别走散了
点击下方阅读原文↓
进入蓝桥微官网,阅读更多技术干货
来源:五分钟学算法 原文链接:
https://juejin.im/post/5c37e5096fb9a049d05df191
以上是关于什么是冒泡排序和鸡尾酒排序?的主要内容,如果未能解决你的问题,请参考以下文章