雞尾酒排序的 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 瀏覽次數

開啟職業生涯

透過完成課程來獲得認證

開始學習
廣告
© . All rights reserved.