【发布时间】:2016-04-18 00:58:20
【问题描述】:
我今天刚刚学习了 Python,并且正在尝试递归地实现 Mergesort……我绝对无法弄清楚我做错了什么。有人可以帮忙吗?
def mergesort(A):
if len(A) < 2:
return A
middle = len(A) // 2
L = mergesort(A[:middle])
R = mergesort(A[middle:])
return merge(L, R)
# Merge - combine part of mergesort
def merge(Lsort, Rsort):
sort = [None] * (len(Lsort + Rsort))
i = 0
j = 0
k = 0
while (len(Lsort) <= len(sort)) or (len(Rsort) <= len(sort)):
if Lsort[i] < Rsort[j]:
sort[k] = Lsort[i]
i += 1
else:
sort[k] = Rsort[j]
j += 1
k += 1
return sort
【问题讨论】:
标签: python list recursion merge mergesort