1. 程式人生 > >插入排序_希爾排序(python)

插入排序_希爾排序(python)

code 使用 color emp def 希爾 pytho and div

希爾排序首先選擇增量,對原列表分組,然後將同組數組使用直接插入法排序,最後增量為1,實現全局排序
 1 ‘‘‘
 2 希爾排序
 3 空間復雜度O(1)
 4 時間復雜度最壞(pow(n,2))
 5 時間復雜度一般情況(pow(n,1.3))
 6 ‘‘‘
 7 def Xier_Px(arr):
 8     size=len(arr)
 9     dk=int(size/2)
10     while dk>=1:
11         for i in range(dk,size):
12             if arr[i]<arr[i-dk]:
13                 temp=arr[i]
14 j=i-dk 15 while j>=0 and arr[j]>temp: 16 arr[j+dk]=arr[j] 17 j -=dk 18 arr[j+dk]=temp 19 dk =int(dk/2) 20 print(arr) 21 22 Xier_Px([88,78,65,156,239,43]) 23 24 輸出: 25 [43, 65, 78, 88, 156, 239]

插入排序_希爾排序(python)