【发布时间】:2016-05-03 03:18:39
【问题描述】:
def combine (l1,l2):
if l1 == []:
return l2
if l2 == []:
return l1
if l1[0] <= l2[0]:
return [l1[0]] + combine(l1[1:], l2)
return [l2[0]] + combine(l1, l2[1:])
我正在尝试定义一个名为“sort”的函数来递归合并列表并返回一个新列表(不改变参数),其中包含 其参数列表中的每个值,但按排序/非降序排列。
def sort(l):
if l == []:
return []
else:
l1, l2 = l[0:int(len(l)/2)], l[int(len(l)/2):]
s = combine(l1, l2)
return sort(s)
但是,它总是给我一个错误:
RuntimeError: maximum recursion depth exceeded in comparison
【问题讨论】:
-
这种类型的排序称为merge sort。
标签: python sorting recursion mergesort