Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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 - Fatal编程技术网

Python 我不明白为什么这里会有最大的递归深度

Python 我不明白为什么这里会有最大的递归深度,python,sorting,recursion,Python,Sorting,Recursion,我有这样的功能: def sort(lst, beg, end): mid = (beg + end)/2 sort(lst, beg, mid) sort(lst, mid, end) i = 0 j = 0 for l in range(beg, end): if j > end - mid or (i <= mid - beg and lst[beg + i] < lst[mid + j]):

我有这样的功能:

def sort(lst, beg, end):
    mid = (beg + end)/2
    sort(lst, beg, mid)
    sort(lst, mid, end)
    i = 0
    j = 0
    for l in range(beg, end):
        if j > end - mid or (i <= mid - beg and lst[beg + i] < lst[mid + j]):
            lst[l] = lst[beg + i]
            i = i + 1
        else:
            lst[l] = lst[mid + j]
            j = j + 1

如何修复此问题?

您缺少一个条件,该条件将阻止您递归。在当前的实现中,您将无限期地继续

e、 g:


没有任何东西可以阻止递归。每次调用sort时,它都会调用自身2次。应该有一个条件语句。

对when end@Smith执行基本情况检查,因为您没有在“sort”函数中返回列表。您正在直接更改/移动列表项。调用“排序”功能后,是否可以打印列表?
RuntimeError: maximum recursion depth exceeded
def sort(lst, beg, end):
    if end - beg <= 1:
        return

    mid = (beg + end)/2
    sort(lst, beg, mid)
    sort(lst, mid, end)
    # rest of code