13 希尔排序

13 希尔排序


# 希尔排序 插入排序的改进版

def shell_sort(a):

	n = len(a)

	gap = n // 2

	while gap >= 1:

		for i in range(gap, n):

			for j in range(i, 0, -gap):

				if a[j] < a[j - gap]:
					a[j], a[j - gap] = a[j - gap], a[j]
				else:
					break

		gap = gap // 2




if __name__ == '__main__':
	a = [54, 26, 93, 17, 77, 31, 44, 55, 20]
	shell_sort(a)
	for i in a:
		print(i, end=" ")

猜你喜欢

转载自blog.csdn.net/qq_41089707/article/details/89301671
今日推荐