45 lines
800 B
Python
45 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!")
|