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

算法--归并排序

时间:2020-05-14 09:11:45      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:ngx   结束   ddl   算法   code   tps   class   ret   循环   

博客:https://www.cnblogs.com/chengxiao/p/6194356.html

https://www.cnblogs.com/piperck/p/6030122.html

python实现:

def merge(left, right):    """
    params: left=[1,2,4]  right=[3,6,7]
    h=j=0: 初始化索引
    循环结束后,判断:如果左边的循环完了, 把右边剩下的循环插入结果集c  (j=3 len=3;  h=1 len=3)或者else。。。。
    """
c = [] h = j = 0 while j < len(left) and h < len(right): if left[j] < right[h]: c.append(left[j]) j += 1 else: c.append(right[h]) h += 1 if j == len(left): for i in right[h:]: c.append(i) else: for i in left[j:]: c.append(i) return c def merge_sort(li): """ step1: 如果len=1,不用排序了,或者说已经排好了 step2: 递归拆分 step3: 合并 """
if len(li) <= 1: return li middle = len(li) // 2 left = merge_sort(li[:middle]) right = merge_sort(li[middle:]) return merge(left, right) if __name__ == __main__: a = [4, 7, 8, 3, 5, 9] print(merge_sort(a))

 

算法--归并排序

标签:ngx   结束   ddl   算法   code   tps   class   ret   循环   

原文地址:https://www.cnblogs.com/zhzhlong/p/12886067.html

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