'''
冒泡排序的每一轮是从左到右来比较元素,进行单向的位置交换
鸡尾酒排序的元素比较和交换过程是双向的:第一轮是从左向右,第二轮是从右向左,以此类推
'''
a=[2,3,4,5,6,7,8,1]
index=0
#外环控制回合
for i in range(int(len(a)/2)):
if((i+1)%2!=0):
isSorted = True
#内环实现冒泡处理:每一轮会把最大值冒泡至最后
for j in range(len(a)-1-i):
if(a[j]>a[j+1]):
n=a[j]
a[j]=a[j+1]
a[j+1]=n
isSorted=False
index+=1
if(isSorted):
break
else:
isSorted = True
# 内环实现冒泡处理:每一轮会把最大值冒泡至最后
for j in range(len(a) - 1 - i,0,-1):
if (a[j] < a[j - 1]):
n = a[j]
a[j] = a[j + 1]
a[j + 1] = n
isSorted = False
index+=1
if (isSorted):
break
print(a)
print(index)
数据结构之鸡尾酒排序(python实现)
最新推荐文章于 2024-08-13 10:37:15 发布