希尔排序python实现,带上注释
时间: 2023-05-16 09:06:03 浏览: 114
基于python的希尔排序算法设计与实现
以下是希尔排序的 Python 实现,带有注释:
def shell_sort(arr):
# 获取数组长度
n = len(arr)
# 初始化间隔为 n/2
gap = n // 2
# 当间隔大于 0 时,继续排序
while gap > 0:
# 对每个间隔进行插入排序
for i in range(gap, n):
# 获取当前元素和间隔之前的元素的下标
temp = arr[i]
j = i
# 插入排序
while j >= gap and arr[j - gap] > temp:
arr[j] = arr[j - gap]
j -= gap
arr[j] = temp
# 缩小间隔
gap //= 2
return arr
# 测试
arr = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", arr)
print("排序后:", shell_sort(arr))
注意:这里的希尔排序实现是基于插入排序的,每次对一个间隔进行插入排序,然后缩小间隔,直到间隔为 1,完成排序。
阅读全文