input: Write a function to merge two lists of integers into one sorted list without using the in-built sort function. The function should iterate through both lists, selecting the smallest element available and appending it to the new list until all elements from both lists are included in the new list, which should be returned as a sorted list.
  assert merge_sort([3, 5, 9, 1, 8], [4, 11, 7, 2])==[1, 2, 3, 4, 5, 7, 8, 9, 11]
  assert merge_sort([], [4, 11, 7, 2])==[2, 4, 7, 11]
  assert merge_sort([3, 5, 9, 1, 8], [])==[1, 3, 5, 8, 9]
  assert merge_sort([1, 2, 3], [4, 5, 6])==[1, 2, 3, 4, 5, 6]
  assert merge_sort([100, 200, 300], [-100, -200, -300])==[-300, -200, -100, 100, 200, 300]
output: def merge_sort(list1, list2):
      merged_list = []
      i, j = 0, 0
      while i < len(list1) and j < len(list2):
          if list1[i] < list2[j]:
              merged_list.append(list1[i])
              i += 1
          else:
              merged_list.append(list2[j])
              j += 1
      while i < len(list1):
          merged_list.append(list1[i])
          i += 1
      while j < len(list2):
          merged_list.append(list2[j])
          j += 1
      return merged_list