希尔排序:分组排序
是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;
随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
def shell_sort(array):
gap=len(array)
while gap>1:
gap=gap//2
for i in range(gap,len(array)):
for j in range(i%gap,i,gap):
if array[i]<array[j]:
array[i],array[j]=array[j],array[i]
return array