tvl-depot/users/wpcarro/scratch/facebook/merge-sorted-arrays.py
Vincent Ambo 019f8fd211 subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro
git-subtree-mainline: 464bbcb15c
git-subtree-split: 24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
2021-12-14 02:15:47 +03:00

44 lines
800 B
Python

def merge_sorted(xs, ys):
result = []
i, j = 0, 0
while i < len(xs) and j < len(ys):
if xs[i] <= ys[j]:
result.append(xs[i])
i += 1
else:
result.append(ys[j])
j += 1
while i < len(xs):
result.append(xs[i])
i += 1
while j < len(ys):
result.append(ys[j])
j += 1
return result
# A
result = merge_sorted([3, 4, 6, 10, 11, 15], [1, 5, 8, 12, 14, 19])
print(result)
assert result == [1, 3, 4, 5, 6, 8, 10, 11, 12, 14, 15, 19]
# B
result = merge_sorted([], [1,2,3])
print(result)
assert result == [1,2,3]
# C
result = merge_sorted([1,2,3], [])
print(result)
assert result == [1,2,3]
# D
result = merge_sorted([], [])
print(result)
assert result == []
# Wahoo!
print("Success!")