鸡尾酒排序的 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 程序


相关文章