在python中使用递归函数进行插入排序

时间:2017-10-13 11:36:16

标签: python recursion insertion-sort

我试图使用递归函数实现插入排序。

def insertion_sort(arr):
    found=False
    #Base case when list has only one element
    if len(arr)==1:
        return arr
    else:
    '''
        insert nth element in appropriate postion in a sorted list of n-1 elements
    '''    
        partial_list=insertion_sort(arr[:len(arr)-1]
        element=arr[-1]
        for i in range(len(partial_list)):
            if partial_list[i]>element:
                index=i
                found=True
                break
        if found:
            return partial_list.insert(index,element)
        else:
            return partial_list.append(element)

但它显示错误:因为我在范围内(len(partial_list)):                            TypeError:“NoneType”类型的对象没有len()。 任何人都可以解释为什么partial_list是'None'类型的对象;即使函数insertion_sort返回一个列表?

1 个答案:

答案 0 :(得分:0)

显然不会总是返回一个列表;断言或附加中的至少一个不会。