希尔排序
- 稳定算法
- 时间复杂度 O(n^3/2)
- 空间复杂度 O(1)
代码
# 希尔排序时间复杂度 O(n^2)
# 空间复杂度O(1)
# 稳定排序
def Shell(arr, size):
cut = size//2
while cut > 0:
for i in range(cut,size):
tmp = arr[i]
no = i - cut
while no>=0 and tmp <= arr[no]:
arr[no+cut] = arr[no]
no -= cut
arr[no+cut] = tmp
cut = cut//2
print(arr)
if __name__ == '__main__':
array = [16, 25, 39, 27, 12, 8, 45, 63]
Shell(array, len(array))