Я попытался написать функцию сортировки слияния, как вы можете видеть ниже. Но когда я пытаюсь проверить это, я получаю сообщение об ошибке:Ошибка, возвращаемая функцией сортировки Merge в 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