1047521767 发表于 2021-10-28 16:05

天道酬勤系列之Python 希尔排序

Python 希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。
希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。
                         https://img-blog.csdnimg.cn/20191130084626876.png

      def shellSort(arr):

    n = len(arr)
    gap = int(n/2)

    while gap > 0:

        for i in range(gap,n):

            temp = arr
            j = i
            while  j >= gap and arr >temp:
                arr = arr
                j -= gap
            arr = temp
        gap = int(gap/2)

arr = [ 12, 34, 54, 2, 3]

n = len(arr)
print ("排序前:")
for i in range(n):
    print(arr),

shellSort(arr)

print ("\n排序后:")
for i in range(n):
    print(arr),

执行以上代码输出结果为:
             排序前:12
34
54
2
3

排序后:
2
3
12
34
54





页: [1]
查看完整版本: 天道酬勤系列之Python 希尔排序