Python 如何进行这种练习?
但是,它总是给我一个错误:Python 如何进行这种练习?,python,sorting,recursion,mergesort,Python,Sorting,Recursion,Mergesort,但是,它总是给我一个错误: 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) 如果l有任何项,则您的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)
如果
l
有任何项,则您的sort
函数将使用相同大小的输入反复调用自身。这最终将导致运行时错误
。如果将函数更改为将给定的列表
一分为二,则对半部分进行排序并组合结果,它将按预期工作:
RuntimeError: maximum recursion depth exceeded in comparison
def merge_sort(l):
如果len(l)如果l
有任何项,则您的sort
函数使用相同大小的输入反复调用自己。这最终将导致运行时错误
。如果将函数更改为将给定的列表
一分为二,则对半部分进行排序并组合结果,它将按预期工作:
RuntimeError: maximum recursion depth exceeded in comparison
def merge_sort(l):
如果len(l),则调用此类型的排序。调用此类型排序的可能副本。可能的副本
def merge_sort(l):
if len(l) <= 1:
return l
return combine(merge_sort(l[0:len(l)/2]), merge_sort(l[len(l)/2:]))