以插入排序为基础,先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。
def shellSort(arr):
n = len(arr)
gap = n/2
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 = int(gap/2)