Python数据结构——希尔排序

希尔排序

  1. 稳定算法
  2. 时间复杂度 O(n^3/2)
  3. 空间复杂度 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))


版权声明:本文为m0_51894865原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。