zltzlt 发表于 2020-3-22 20:34:15

Python 排序算法:希尔排序

来源于 菜鸟教程

Python 排序算法:希尔排序

原理

希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。

希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录 “基本有序” 时,再对全体记录进行依次直接插入排序。



代码

def shell_sort(arr):
    gap = (n := len(arr)) // 2
    while gap:
      for i in range(gap, n):
            temp = arr
            while i >= gap and arr > temp:
                arr = arr
                i -= gap
            arr = temp
      gap //= 2


nums =
print(f"排序前:{nums}")
shell_sort(nums)
print(f"排序后:{nums}")

qiuyouzhi 发表于 2020-3-22 20:38:35

还真出了~

zltzlt 发表于 2020-3-22 20:40:02

qiuyouzhi 发表于 2020-3-22 20:38
还真出了~

{:10_256:}{:10_256:}{:10_256:}

还打算出插入排序{:10_256:}

qiuyouzhi 发表于 2020-3-22 20:42:50

zltzlt 发表于 2020-3-22 20:40
还打算出插入排序

好啊
我就吃吃瓜了
页: [1]
查看完整版本: Python 排序算法:希尔排序