-4
아래에서 볼 수있는 것처럼 병합 정렬 함수를 작성하려고했습니다. 하지만 테스트를 시도 할 때 오류가 발생합니다.Python의 병합 정렬 함수에서 오류가 반환되었습니다.
the name mergesort is not defined
누구든지이 오류의 원인을 지적 할 수 있습니까?
def merge(self,a,b):
sorted_list=[]
while len(a)!=0 and len(b)!=0:
if a[0].get_type()<b[0].get_type():
sorted_list.append(a[0])
a.remove(a[0])
else:
sorted_list.append(b[0])
b.remove(b[0])
if len(a)==0:
sorted_list+=b
else:
sorted_list+=a
return sorted_list
def mergesort(self,lis):
if len(lis) == 0 or len(lis) == 1:
return lis
else:
middle = len(lis)// 2
a = mergesort(lis[middle:]) #in pycharm the next 3 lines are with red underlined
b = mergesort(lis[middle:])
return merge(a,b)
들여 쓰기를 수정하십시오. – Tagc
당신은 이상한'self' 주장을 가지고 있습니다. 이것들은 수업의 방법이라고 생각합니까? – user2357112
예, 그들은 클래스의 메소드입니다 – Mary