希爾排序:分組排序
? ? ? ? ? ? ? 是把記錄按下標的一定增量分組,對每組使用直接插入排序算法排序;
? ? ? ? ? ? ? 隨著增量逐漸減少,每組包含的關鍵詞越來越多,當增量減至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