I write such a insertion algorithms:
In [33]: %paste
def insertion_sort2(arr):
for i in range(1, len(arr)):
insert_item = arr[i]
for j in range(i):#insert to sorted array arr[:i]
if insert_item < arr[j]:
arr[j] = insert_item
Test it
In [35]: arr
Out[35]: [0, 0, 0, 2, 3, 3, 6, 6, 6]
In [36]: arr = list(range(9))
In [37]: random.shuffle(arr)
In [38]: insertion_sort2(arr)
In [39]: arr
Out[39]: [0, 0, 0, 0, 0, 0, 3, 3, 3]
I check the logic but cannot find any problem.
1. i in arr[1:len]
2. insert arr[i] to arr[:i]
What' the problem with my implementation?