编程语言
首页 > 编程语言> > 鸡尾酒排序算法

鸡尾酒排序算法

作者:互联网

鸡尾酒概述

鸡尾酒排序又称双向冒泡排序、鸡尾酒搅拌排序、搅拌排序、涟漪排序、来回排序或快乐小时排序, 是冒泡排序的一种变形。该算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。

鸡尾酒排序原理

数组中的数字本是无规律的排放,先找到最小的数字,把他放到第一位,然后找到最大的数字放到最后一位。然后再找到第二小的数字放到第二位,再找到第二大的数字放到倒数第二位。以此类推,直到完成排序。

代码python

#utf-8
def cocktail_sort(l):
    size=len(l)
    sign=1
    for i in range(int(size/2)):
        if sign:
            for j in range(i,size-1-i):
                if l[j]>l[j+1]:
                    l[j],l[j+1]=l[j+1],l[j]
            for k in range(size-2-i,i,-1):
                if l[k]<l[k-1]:
                    l[k],l[k-1]=l[k-1],l[k]
                    sign=1
        else:
            break
    print(l)

l = [10, 1, 2, 6, 4, 3, 9]
cocktail_sort(l)

转载连接https://baike.baidu.com/item/鸡尾酒排序/7515196?fr=aladdin

标签:数字,鸡尾酒,算法,冒泡排序,range,排序,size
来源: https://blog.csdn.net/weixin_40810963/article/details/88394420