input: Write a function to implement the insertion sort algorithm. The function should take a list as input and return the sorted list in non-decreasing order.
  
  def insertion_sort(list):
      for i in range(1, len(list)):
          key = list[i]
          j = i - 1
          while j >= 0 and key < list[j]:
              list[j + 1] = list[j]
              j -= 1
          list[j + 1] = key
      return list
  
  assert insertion_sort([4, 3, 2, 10, 12, 1, 5, 6]) == [1, 2, 3, 4, 5, 6, 10, 12]
  assert insertion_sort([1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5]
  assert insertion_sort([5, 4, 3, 2, 1]) == [1, 2, 3, 4, 5]
  assert insertion_sort([]) == []
  assert insertion_sort([3, 1]) == [1, 3]
output: def insertion_sort(list):
      for i in range(1, len(list)):
          key = list[i]
          j = i - 1
          while j >= 0 and key < list[j]:
              list[j + 1] = list[j]
              j -= 1
          list[j + 1] = key
      return list