合并两个有序列表——递归&非递归
Posted 回冬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两个有序列表——递归&非递归相关的知识,希望对你有一定的参考价值。
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]))
以上是关于合并两个有序列表——递归&非递归的主要内容,如果未能解决你的问题,请参考以下文章