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

希尔排序--python

时间:2019-11-01 18:16:42      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:for   希尔排序   step   random   shel   ==   star   while   code   

 1 import random
 2 import time
 3 
 4 # 插入排序
 5 def insertion_sort(arr, step):
 6     for i in range(step, len(arr)):
 7         for j in range(i, step - 1, -step):
 8             if arr[j] < arr[j-step]:
 9                 arr[j], arr[j-step] = arr[j-step], arr[j]
10             else:
11                 break
12 
13 # 希尔排序:插入排序算法的优化算法
14 def shell_sort(arr):
15     length = len(arr)
16     step = 1
17 
18     while step < length // 3:
19         step = 3 * step + 1
20 
21     while step >= 1:
22         insertion_sort(arr, step)
23         step = step // 3
24 
25 
26 if __name__ == __main__:
27     arr = [random.randint(0, 1000000) for _ in range(5000)]
28     print(待排序数组大小:, len(arr))
29     start = time.time()
30     shell_sort(arr)
31     end = time.time()
32     print(用时:, end - start)

 

希尔排序--python

标签:for   希尔排序   step   random   shel   ==   star   while   code   

原文地址:https://www.cnblogs.com/yixiu868/p/11778393.html

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