input: Write a function to merge two lists of integers into one sorted list without using the in-built sort function. The function should return the sorted list. If either list is empty, the function should return the non-empty list sorted.
  
  def merge_sort(list1, list2):
      merged_list = list1 + list2
      for i in range(len(merged_list)):
          min_idx = i
          for j in range(i+1, len(merged_list)):
              if merged_list[min_idx] > merged_list[j]:
                  min_idx = j
          merged_list[i], merged_list[min_idx] = merged_list[min_idx], merged_list[i]
      return merged_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, 2, 1])==[1, 2, 4]
  assert merge_sort([1, 3, 5], [])==[1, 3, 5]
  assert merge_sort([], [])==[]
  assert merge_sort([9, 7, 5], [6, 8, 4])==[4, 5, 6, 7, 8, 9]
output: def merge_sort(list1, list2):
      if not list1:
          return list2
      if not list2:
          return list1
      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