Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何进行这种练习?_Python_Sorting_Recursion_Mergesort - Fatal编程技术网

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:]))