input: Write a function to implement a merge sort algorithm for two large lists A and B. The function should compare the first elements of both lists and add the smaller element to the result list, then move the pointer to the next element of the list from which the element was taken. This process should continue until all elements of both lists are added to the result list in sorted order.
  
  
  def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
  # Compare elements and add lower one to result
  while i < len(A) and j < len(B):
   if A[i] < B[j]:
   result.append(A[i])
   i += 1
   else:
   result.append(B[j])
   j += 1
  
  # Add remaining elements
  result += A[i:]
  result += B[j:]
  
  return result
  
  
  assert merge_sort([3, 6, 8, 10, 11], [2, 5, 7, 12]) == [2, 3, 5, 6, 7, 8, 10, 11, 12]
  assert merge_sort([1, 3, 5], [2, 4, 6]) == [1, 2, 3, 4, 5, 6]
  assert merge_sort([], [1, 2, 3]) == [1, 2, 3]
  assert merge_sort([4, 6, 8], []) == [4, 6, 8]
  assert merge_sort([], []) == []
output: 
  def merge_sort(A, B):
   result = [] 
   i, j = 0, 0
  
   while i < len(A) and j < len(B):
    if A[i] < B[j]:
     result.append(A[i])
     i += 1
    else:
     result.append(B[j])
     j += 1
  
   result += A[i:]
   result += B[j:]
  
   return result
  