鸡尾酒排序的 Python 程序
pythonserver side programmingprogramming
在本文中,我们将了解下面给出的问题陈述的解决方案。
问题陈述 − 我们给出一个列表,我们需要对给定的列表执行双调排序并显示列表
鸡尾酒排序 − 这里的排序类似于冒泡排序,迭代在两个方向上进行。
算法
首先从左到右遍历数组。在遍历过程中,将比较相邻项,并根据条件交换值。这样,最大的数字将位于数组的末尾。
现在以相反的方向遍历数组,并根据条件交换元素。这样,最小的数字将位于开头。
现在让我们观察下面实现中的解决方案 −
示例
# 函数 defcocktailSort(a): n = len(a) flag = True start = 0 end = n-1 while (flag==True): # 忽略上一次迭代的结果 flag = False # 从左到右遍历 for i in range (start, end): 如果 (a[i] > a[i+1]) : a[i], a[i+1]= a[i+1], a[i] flag=True # 如果没有发生交换,数组仍保持排序 if (flag==False): break # 否则,重置标志 flag = False # 最后一项已排序 end = end-1 # 从右到左迭代 for i in range(end-1, start-1,-1): if (a[i] > a[i+1]): a[i], a[i+1] = a[i+1], a[i] flag = True # 第一个元素已经排序 start = start+1 # main a = [2,5,4,3,8,3,4,6] cocktailSort(a) print("排序后的数组为:") for i in range(len(a)): print (a[i],end=" ")
输出
排序后的数组为: 2 3 3 4 4 5 6 8
所有变量均在本地范围内声明,其引用如上图所示。
结论
在本文中,我们了解了如何编写用于鸡尾酒排序的 Python 程序