希爾排序

##希爾排序
def sort(arr):
    h = 1
    size = len(arr)
    while h < size // 3:
        h = 3 * h + 1
    while h >= 1:
        for i in range(h, size):
            j = i
            while j >= h and arr[j] < arr[j-h]:
                tmp = arr[j-h]
                arr[j-h] = arr[j]
                arr[j] = tmp
                j -= h
        h = h // 3
    return arr

##############驗證#############
import numpy as np
len2 = 10
###生成隨機整數列表
arr = np.random.randint(len2 * 10, size=len2)
print('排序前:')
print(arr)
sort(arr)
print('排序后:')
print(arr)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容