希尔排序

##希尔排序
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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容