首页 > 编程语言 > 详细

归并排序

时间:2021-07-13 20:33:26      阅读:29      评论:0      收藏:0      [点我收藏+]
 1 def merge_(li, start, mid, end):
 2     i = start
 3     j = mid + 1
 4     ltmp = []
 5     while j <= end and i <= mid:
 6         if li[i] < li[j]:
 7             ltmp.append(li[i])
 8             i += 1
 9         else:
10             ltmp.append(li[j])
11             j += 1
12     while i <= mid:
13         ltmp.append(li[i])
14         i += 1
15     while j <= end:
16         ltmp.append(li[j])
17         j += 1
18     li[start:end+1] = ltmp
19 
20 def mergesort(li, start, end):
21     if start < end:
22         mid = (start+end) // 2
23         mergesort(li, start, mid)
24         mergesort(li, mid+1, end)
25         merge_(li, start, mid, end)
26         print(li[start:end+1])
27 
28 li = list(range(8))
29 import random
30 random.shuffle(li)
31 print(li)
32 mergesort(li, 0, len(li)-1)
33 print(li)

技术分享图片

 

归并排序

原文:https://www.cnblogs.com/dzwclimber/p/15007525.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!