Python 插入算法的实现问题

Python 插入算法的实现问题,python,algorithm,Python,Algorithm,我写了这样一个插入算法: In [33]: %paste def insertion_sort2(arr): for i in range(1, len(arr)): insert_item = arr[i] for j in range(i):#insert t

我写了这样一个插入算法:

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
我检查了逻辑,但没有发现任何问题

1. i in arr[1:len]
2. insert arr[i] to arr[:i]
我的实现有什么问题吗?

arr[j] = insert_item
覆盖
arr[j]
。它不插入

>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[3] = 'foo'
>>> l
[0, 1, 2, 'foo', 4, 5, 6, 7, 8, 9]
>>> l.insert(7, 'bar')
>>> l
[0, 1, 2, 'foo', 4, 5, 6, 'bar', 7, 8, 9]
>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[3] = 'foo'
>>> l
[0, 1, 2, 'foo', 4, 5, 6, 7, 8, 9]
>>> l.insert(7, 'bar')
>>> l
[0, 1, 2, 'foo', 4, 5, 6, 'bar', 7, 8, 9]