Python 實現 Shell 排序程式


當需要實現 Shell 排序時,會定義一個函式,該函式以列表和列表長度作為引數。此列表會按特定數量的元素進行排序,其中元素數量為最大值。這會持續進行,直到元素數量具有最小值。

這會對列表中的所有子列表進行操作,並且所有這些子列表都已排序。

列表可用於儲存異構值(即任何資料型別的資料,如整數、浮點數、字串等)。

下面是相同內容的演示 -

示例

線上演示

def shell_sort(my_list, list_len):
   interval = list_len // 2
   while interval > 0:
      for i in range(interval, list_len):
         temp = my_list[i]
         j = i
         while j >= interval and my_list[j - interval] > temp:
            my_list[j] = my_list[j - interval]
            j -= interval
         my_list[j] = temp
      interval //= 2

my_list = [ 45, 31, 62, 12, 89, 5, 9, 8]
list_len = len(my_list)
print ("The list before sorting is :")
print(my_list)
shell_sort(my_list, list_len)
print ("\nThe list after performing shell sorting is :")
print(my_list)

輸出

The list before sorting is :
[45, 31, 62, 12, 89, 5, 9, 8]

The list after performing shell sorting is :
[5, 8, 9, 12, 31, 45, 62, 89]

解釋

  • 定義了一個名為“shell_sort”的方法,該方法將列表和列表長度作為引數。
  • 使用“//”按位運算子定義“interval”變數。
  • 它執行地板除法。
  • 它將值四捨五入到最接近的整數。
  • 迭代列表,並建立一個臨時變數。
  • 將“interval”變數與列表的每個索引進行比較,並將列表中的每個元素與臨時變數進行比較。
  • 再次使用“interval”變數執行地板除法。
  • 定義列表,並在控制檯上顯示。
  • 透過傳遞此列表及其長度來呼叫該方法。
  • 在控制檯上顯示輸出。

更新於: 2021年3月12日

844 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.