合并 2 个有序列表
递归算法
略
非递归算法
实现
def merge(a, b):
A = 0
B = 0
res = []
while A <= len(a)-1 and B <= len(b)-1:
if a[A] <= b[B]:
res.append(a[A])
A += 1
else:
res.append(b[B])
B += 1
if A == len(a):
res.extend(b[B:])
if B == len(b):
res.extend(a[A:])
return res
测试
def test():
l1 = [1,4,5]
l2 = [2,3,6,7]
l3 = [2,3]
l4 = [7,9]
assert merge(l1, l2) == [1,2,3,4,5,6,7]
assert merge(l1, l3) == [1,2,3,4,5]
assert merge(l1, l4) == [1,4,5,7,9]