我试图使用递归函数实现插入排序。
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返回一个列表?
答案 0 :(得分:0)
显然不会总是返回一个列表;断言或附加中的至少一个不会。