def mergesort(a):
if len(a)<=1:
return a
else:
mid=len(a)/2
mergesort(a[:mid])
mergesort(a[mid:])
auxa=[]
j=0
k=mid
while j<mid and k<len(a):
if a[j]<a[k]:
auxa.append(a[j])
j+=1
else:
auxa.append(a[k])
k+=1
if j==mid:
auxa.extend(a[k:])
if k==len(a):
auxa.extend(a[j:mid])
a=auxa
return a
testlist=[3,2,1]
print mergesort(testlist)
结果我得到的是2 1 3Mergesort in Python,我的第一个排序算法,出了什么问题?
任何帮助非常感谢,谢谢!
不要忽略内部'归并返回值()'调用 – jfs