鸡尾酒排序思路:
- 比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
- 从倒数第二个元素开始与前一个元素相比较,若小于前一个元素则进行位置交换,即倒叙进行比较排序
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
实现代码如下:
def cocktail_sort(args):
args_len=len(args)
args_lenb=args_len
while args_len>1:
i=0
for a in range(i,args_len-1):
if args[a] <args[a+1]:
pass
else:
args[a],args[a+1]=args[a+1],args[a]
args_lenb-=2
i+=1
while args_lenb>i:
if args[args_lenb]>args[args_lenb-1]:
pass
else:
args[args_lenb],args[args_lenb-1]=args[args_lenb-1],args[args_lenb]
args_lenb-=1
args_len-=2
return args
测试一下
list2=[1,2,3,1,5,7,2,3,8,2,3,4,2,7]
cocktail_sort(list2)
Out[18]: [1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5, 7, 7, 8]
本文深入解析了鸡尾酒排序算法的实现思路与过程,包括对比相邻元素并调整顺序,从两端向中间逐步减少比较范围,直至整个列表有序。通过具体代码示例展示了算法的执行流程。
5万+

被折叠的 条评论
为什么被折叠?



