插入排序_希爾排序(python)
阿新 • • 發佈:2018-08-04
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)