Iterates through the list, starting at the second item and then iterating backwards and inserting before the last valid (i.e. larger if ascending) number.

Implementation

from random import randint
data = [randint(1, 100) for x in range(10)]
 
def insertion_sort(arr: list[int]) -> None:
	for i in range(1, len(arr)):
		current = arr[i]
		v = i - 1
		while v >= 0 and current < arr[v]:
			v -= 1
		arr.insert(v + 1, arr.pop(i))
 
insertion_sort(data)
print(data)