input: Write a function that implements an algorithm to sort two large lists A and B. The function should compare the elements of both lists from the beginning and add the smaller element to the result list, then move the pointer to the next element in the list from which the element was added. The process should continue until all elements from both lists are added to the result list. The final result should be a sorted list of all elements from both lists.
  
  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
  
  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, 2, 3]) == [1, 2, 3]
  assert merge_sort([4, 5, 6], []) == [4, 5, 6]
  assert merge_sort([1, 3, 5], [2, 4, 6]) == [1, 2, 3, 4, 5, 6]
  assert merge_sort([1], [1]) == [1, 1]
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