python 中的合并排序

MergeSort in python

def merge(A,l,m,r):

    i = l
    j = m+1
    new = []

    while i <= m and j <= r:
        if A[i] <= A[j]:
            new.append(A[i])
            i += 1
        else:
            new.append(A[j])
            j += 1

    while i <= m:
        new.append(A[i])
        i += 1
   
    while j <= r:
        new.append(A[j])
        j += 1

    return new

此功能因错误而无法使用,您能帮我了解错误是什么以及如何解决吗?

这个说法没有意义:

return new

因为你无处使用函数的return。所以函数 merge() 什么都不做。

我相信您需要直接在函数内部更改数组 A。无需创建 return new 数组。