我为合并排序编写了两个函数:
def mergesort1(c, l, r):
i, j, k = 0, 0, 0
while (i < len(l)) & (j < len(r)):
if l[i] < r[j]:
c[k] = l[i]
i += 1
else:
c[k] = r[j]
j += 1
k += 1
while i < len(l):
c[k] = l[i]
i += 1
k += 1
while j < len(r):
c[k] = r[j]
j += 1
k += 1
def mergesort(c):
if len(c) < 2:
return c
l = c[0 : (len(c) // 2)]
r = c[len(c) // 2 : len(c)]
mergesort(l)
mergesort(r)
mergesort1(c, l, r)
我无法返回函数的排序值
您的
mergesort
函数对列表进行适当排序。可以添加return语句以方便方法链接,但函数将始终返回其原始参数:您正在对列表进行排序:排序的结果在原始列表中。如果要返回一个新列表,其中包含结果,而不修改原始列表:
相关问题 更多 >
编程相关推荐