实现插入算法的问题

时间:2018-11-24 06:04:09

标签: 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 to sorted array arr[:i]
            if insert_item < arr[j]:
                arr[j] = insert_item

测试

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]

我检查了逻辑但找不到任何问题。

1. i in arr[1:len]
2. insert arr[i] to arr[:i]

我的实现有什么问题?

1 个答案:

答案 0 :(得分:1)

randomFive

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

arr[j]