码迷,mamicode.com
首页 > 其他好文 > 详细

合并两个有序列表——递归&非递归

时间:2017-10-08 21:30:40      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:bsp   有序列表   列表   ext   def   return   pen   blog   class   

1、递归

def MergeTwo(l1, l2, tmp):
    if len(l1) == 0 or len(l2) == 0:
        tmp.extend(l1)
        tmp.extend(l2)
        return tmp
    else:
        if l1[0] < l2[0]:
            tmp.append(l1[0])
            del l1[0]
        else:
            tmp.append(l2[0])
            del l2[0]
        return MergeTwo(l1, l2, tmp)

def mergesort2(l1, l2):
    return MergeTwo(l1, l2, [])

print(mergesort2(l1=[2, 4, 6, 8], l2=[1, 3, 5, 7, 9]))

2、非递归

def MergeTwo(l1, l2):
    tmp = []
    while len(l1) > 0 and len(l2) > 0:
        if l1[0] < l2[0]:
            tmp.append(l1[0])
            del l1[0]
        else:
            tmp.append(l2[0])
            del l2[0]
    tmp.extend(l1)
    tmp.extend(l2)
    return tmp

print(MergeTwo(l1=[2, 4, 6, 8], l2=[1, 3, 5, 7, 9]))

 

合并两个有序列表——递归&非递归

标签:bsp   有序列表   列表   ext   def   return   pen   blog   class   

原文地址:http://www.cnblogs.com/llw1121/p/7638365.html

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