在Python2中获取Merge-Sort的错误答案

时间:2017-09-24 18:10:47

标签: python mergesort

这是python中merge-sort的实现,但我在hackerrank平台的一个测试用例中得到了错误的答案。我不知道我哪里错了,我也不知道测试用例。

def merge(l,r,a):
    nl=len(l)
    nr=len(r)
    i,j,k=0,0,0
    while (i<nl and j<nr):
        if (r[j]<=l[i]):
            a[k]=r[j]
            j=j+1
        else:
            a[k]=l[i]
            i=i+1
        k=k+1
    while (i<nl):
        a[k]=l[i]
        i=i+1
        k=k+1
    while (j<nr):
        a[k]=r[j]
        j=j+1
        k=k+1



def mergesort(a):
    n=len(a)
    if n<2:
        return a
    mid=n/2
    left=a[:mid]
    right=a[mid:]
    mergesort(left)
    mergesort(right)
    merge(left,right,a)
    return a


a=[5,8,3,6,4]
ans=mergesort(a)
for k in ans:
    print k

0 个答案:

没有答案