鸡尾酒排序算法
作者:互联网
鸡尾酒概述
鸡尾酒排序又称双向冒泡排序、鸡尾酒搅拌排序、搅拌排序、涟漪排序、来回排序或快乐小时排序, 是冒泡排序的一种变形。该算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。
鸡尾酒排序原理
数组中的数字本是无规律的排放,先找到最小的数字,把他放到第一位,然后找到最大的数字放到最后一位。然后再找到第二小的数字放到第二位,再找到第二大的数字放到倒数第二位。以此类推,直到完成排序。
代码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