-3
我試圖使用遞歸函數實現插入排序。在python中使用遞歸函數進行插入排序
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)
但其示出了一個錯誤:對於i在範圍(LEN(partial_list)): 類型錯誤:類型的對象 'NoneType' 沒有LEN()。 任何人都可以請解釋爲什麼partial_list是一個'None'類型的對象;即使函數insertion_sort正在返回一個列表?
注意:這是''for'循環'else'的完美用例。保存'found'標誌。 –
你正在返回'insert'或'append'的結果'None'。首先追加或插入,然後'返回partial_list' –