

'Donald L. Shell'이라는 사람이 제안한 방법, 삽입 정렬을 보완한 방법.
정렬할 배열의 요소를 그룹으로 나누어 그룹 별로 삽입 정렬을 수행하고 두 그룹을 합치면서 정렬을 반복하여 이동 횟수를 줄이는 방법.
[5, 3, 8, 1, 2, 7]의 배열

...
def shell_sort(arr):
N = len(arr)
h = N // 2
while h > 0:
for i in range(h, N):
temp = arr[i]
j = i - h
while j >= 0 and arr[j] > temp:
arr[j+h] = arr[j]
j -= h
arr[j+h] = temp
h //= 2
print(arr)
