希尔排序算法在 Python 中的实现

希尔排序算法在 Python 中的实现

希尔排序是插入排序的一种优化算法,先宏观进行分组调整,再进行微观调整,从而提高排序效率。

算法实现:

def shellSort(lst, k, reverse=False):
    length = len(lst)
    dk = k  # 设置增量
    while dk > 0:
        for i in range(dk, length):
            temp = lst[i]
            j = i
            while j >= dk and lst[j - dk] > temp:
                lst[j] = lst[j - dk]
                j -= dk
            lst[j] = temp
        dk = int(dk / 2)  # 递减增量
    if reverse == False:
        return lst
    else:
        lst.reverse()
        return lst

使用方法:

# 升序排列
lst = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sorted_lst = shellSort(lst, 3)  # 增量设置为 3

# 降序排列
lst = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sorted_lst = shellSort(lst, 3, reverse=True)
py 文件大小:567B