漫画:鸡尾酒排序

这一天,小白来到小红家做客。

这是我调的鸡尾酒来一杯吧。

好的,谢谢。

说到鸡尾酒,你知道鸡尾酒排序吗(也叫搅拌排序)。

扫描二维码关注公众号,回复: 1055985 查看本文章

不知道诶,你给讲讲。

其实鸡尾酒排序,就是冒泡排序的微变形。你知道冒泡排序吗。

  

冒泡排序我知道诶。两层循环,第一层需要执行n-1次,第二层循环做比较,做比较就是依次比较相邻的两个数,如果前面的比后面的数大就交换,所以第一层第一次循环结束后最大的数就在最后一个。第二次循环倒数第二大的就在倒数第二个位置。反复的运算后,就排好序了。像气泡一样从下往上越来越大,所以叫冒泡排序啊。鸡尾酒排序和这个有什么关系呢。

鸡尾酒排序其实就是双向冒泡排序。所谓双向冒泡排序就是说,从一组数中先从前到后找出最大的数放在最后,再从后到前把最小的数放在最前面,每正反一次排序,就确定了两个数的位置。

原始数组:  4 5 6 3

冒泡排序:

鸡尾酒排序:

由此发现传统的冒泡排序比鸡尾酒排序多一次排序,但是在完全倒序的情况下,性能是差不多的。(冒泡排序和鸡尾酒排序时间复杂的都是o(n^2),空间复杂度都是o(1))

注明:偶然间看到这个算法,比较好奇,研究一下,给大家分享一下。

感兴趣的朋友可以关注小编的公众号,更多精彩等着您:javaxiaokashow(JAVA小咖秀)

 
 
 
 

猜你喜欢

转载自www.cnblogs.com/playburst/p/9097200.html