希尔排序算法在 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)
567B
文件大小:
评论区