插入排序_希尔排序(python)

Posted J_pyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序_希尔排序(python)相关的知识,希望对你有一定的参考价值。

希尔排序首先选择增量,对原列表分组,然后将同组数组使用直接插入法排序,最后增量为1,实现全局排序
 1 ‘‘‘
 2 希尔排序
 3 空间复杂度O(1)
 4 时间复杂度最坏(pow(n,2))
 5 时间复杂度一般情况(pow(n,1.3))
 6 ‘‘‘
 7 def Xier_Px(arr):
 8     size=len(arr)
 9     dk=int(size/2)
10     while dk>=1:
11         for i in range(dk,size):
12             if arr[i]<arr[i-dk]:
13                 temp=arr[i]
14                 j=i-dk
15                 while j>=0 and arr[j]>temp:
16                     arr[j+dk]=arr[j]
17                     j -=dk
18                 arr[j+dk]=temp
19         dk =int(dk/2)
20     print(arr)
21 
22 Xier_Px([88,78,65,156,239,43])
23 
24 输出:
25 [43, 65, 78, 88, 156, 239]

 

以上是关于插入排序_希尔排序(python)的主要内容,如果未能解决你的问题,请参考以下文章

Python|插入排序之希尔排序

Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。

插入.希尔.选择.堆排.冒泡.快排.归并.计数_8排序

经典排序算法系列之插入排序和希尔排序----小白理解(python)

简单插入排序&希尔排序(python)

python排序-希尔排序