Python 我实现的合并排序不起作用

Python 我实现的合并排序不起作用,python,python-3.x,sorting,mergesort,Python,Python 3.x,Sorting,Mergesort,我一直在python中实现合并排序,没有创建额外的变量来减少空间复杂性。这是我的尝试 我的基本合并排序逻辑如下所示,它由两个函数组成:- 合并排序 合并 其代码如下所示:- def mergeSort(A, start_index, end_index): if ((len(A)) > 1): middle = math.floor((start_index + end_index) / 2) mergeSort(A[start_index:midd

我一直在python中实现合并排序,没有创建额外的变量来减少空间复杂性。这是我的尝试

我的基本合并排序逻辑如下所示,它由两个函数组成:-

  • 合并排序

  • 合并

  • 其代码如下所示:-

    def mergeSort(A, start_index, end_index):
        if ((len(A)) > 1):
            middle = math.floor((start_index + end_index) / 2)
            mergeSort(A[start_index:middle], start_index, middle)
            mergeSort(A[middle:end_index], middle, end_index)
            merge(A[start_index:middle], A[middle: end_index], A)
            #Create a new empty list for array to merge
    
    我的合并逻辑如下所示:-

    def merge(U, V, A):   
    
        m = len(U) - 1
        n = len(V) - 1
    
        U.append(inf)
        V.append(inf)
    
        i = j = k = 0
    
        while(k <= (m + n + 1)):
    
            if(U[i] < V[j]):
                A[k] = U[i]
                i += 1
    
            else:
                A[k] = V[j]
                j += 1
    
    
            k += 1
    
    def合并(U、V、A):
    m=len(U)-1
    n=len(V)-1
    U.1(inf)
    V.append(inf)
    i=j=k=0
    
    虽然(k我不允许评论,但您应该在代码的第一个函数中添加mergeSort

    If (start_index < end_index) :
    
    If(开始索引<结束索引):