def combine (l1,l2):
if l1 == []:
return l2
if l2 == []:
return l1
if l1[0] <= l2[0]:
return [l1[0]] + combine(l1[1:], l2)
return [l2[0]] + combine(l1, l2[1:])
Я пытаюсь попрактиковаться в определении функции с именем «sort», чтобы рекурсивно объединить список и вернуть новый список (не изменяя аргумент), который содержит каждое значение из своего списка аргументов, но в отсортированном / неубывающем порядке.
def sort(l):
if l == []:
return []
else:
l1, l2 = l[0:int(len(l)/2)], l[int(len(l)/2):]
s = combine(l1, l2)
return sort(s)
Однако это всегда дает мне ошибку:
RuntimeError: maximum recursion depth exceeded in comparison