-3
재귀 함수를 사용하여 삽입 정렬을 구현하려고했습니다.파이썬에서 재귀 함수를 사용하여 삽입 정렬
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)) 오류 : 유형의 객체가 'NoneType'아니요 LEN이 없다(). 누구든지 partial_list가 'None'유형의 객체 인 이유를 설명해 주실 수 있습니까? 비록 insertion_sort 함수가리스트를 리턴하고 있더라도?
참고 : 이것은 'for' 루프의'else '에 대한 완벽한 사용 사례입니다. 'found' 플래그를 저장합니다. –
'insert' 또는'append'의 결과는'None'입니다. 먼저 추가 또는 삽입 한 다음'return partial_list' –