input: def insertion_sort(arr):
      for i in range(1, len(arr)): 
    
          key = arr[i] 
    
          # Move elements of arr[0..i-1], 
          # that are greater than key, 
          # to one position ahead of 
          # their current position 
          j = i-1
          while j >= 0 and key < arr[j] : 
                  arr[j + 1] = arr[j] 
                  j -= 1
          arr[j + 1] = key
  
      return arr
  
  # Example usage:
  # >>> insertion_sort([5, 2, 9, 1, 5, 6])
  # [1, 2, 5, 5, 6, 9]
  # >>> insertion_sort([3, 8, 2, 1, 5])
  # [1, 2, 3, 5, 8]
  # >>> insertion_sort([10, 7, 8, 9, 1, 5])
  # [1, 5, 7, 8, 9, 10]
output:     for i in range(1, len(arr)): 
          key = arr[i] 
    
          # Move elements of arr[0..i-1], 
          # that are greater than key, 
          # to one position ahead of 
          # their current position 
          j = i-1
          while j >= 0 and key < arr[j] : 
                  arr[j + 1] = arr[j] 
                  j -= 1
          arr[j + 1] = key
  
      return arr