鸡尾酒排序的 Python 程序


在本文中,我们将学习关于以下给定问题陈述的解决方案。

问题陈述 − 我们得到一个列表,我们需要对给定的列表执行双调排序并显示列表

鸡尾酒排序 − 在这里排序像冒泡排序一样,在两个方向进行迭代。

算法

首先,从左向右遍历数组。在遍历期间,比较相邻项,并基于条件交换值。这样,最大的数字将位于数组的末尾。

现在,从相反的方向遍历数组,并基于条件,交换元素。这样,最小的数字将位于开头。

现在让我们观察以下实现中的解决方案 −

示例

 在线演示

# function
def cocktailSort(a):
   n = len(a)
   flag = True
   start = 0
   end = n-1
   while (flag==True):
      # to ignore the result of the previous iteration
      flag = False
      # left to right traversal
      for i in range (start, end):
         if (a[i] > a[i+1]) :
            a[i], a[i+1]= a[i+1], a[i]
            flag=True
      # if no swap takes place array remains sorted
      if (flag==False):
         break
      # otherwise, reset the flag
      flag = False
      # last item is aldready sorted
      end = end-1
      # iteration from right to left
      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
      # first element is already sorted
      start = start+1
# main
a = [2,5,4,3,8,3,4,6]
cocktailSort(a)
print("Sorted array is:")
for i in range(len(a)):
   print (a[i],end=" ")

输出

Sorted array is:
2 3 3 4 4 5 6 8

所有变量都在本地范围内声明,并且在上图中可以看到它们的引用。

结论

在本文中,我们学习了如何编写鸡尾酒排序的 Python 程序

更新于:20-Dec-2019

315 浏览次数

开启职业生涯

通过完成课程来获得认证

开始学习
广告