-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)): TypeError例外:タイプのオブジェクトが 'NoneType' はLENを有していません()。 誰でもpart_listが 'None'タイプのオブジェクトである理由を説明できますか?関数insertion_sortがリストを返すにもかかわらず?
注:これは、 'for'ループの' else'のための完全な使用例です。 'found'フラグを保存します。 –
'insert'または' append'の結果を返します。これは 'None'です。最初に追加または挿入し、 'return partial_list' –