码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-04 21:39:22      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:数组使用   数组   1.3   col   使用   while   color   全局   插入排序   

希尔排序首先选择增量,对原列表分组,然后将同组数组使用直接插入法排序,最后增量为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)

标签:数组使用   数组   1.3   col   使用   while   color   全局   插入排序   

原文地址:https://www.cnblogs.com/japyc180717/p/9419910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!