def quickSort(x):
if len(x) <= 1:
return x
mid = x[0]
l = filter(lambda k: k<=mid, x)
r = filter(lambda k: k>mid, x)
return quickSort(l)+quickSort(r)
b = [3,2,1,5,4]
quickSort(b)
然后我收到此错误:
RuntimeError:超过最大递归深度
答案 0 :(得分:0)
您需要从2个较小的部分中取出分区元素:
def quickSort(x):
if len(x) <= 1:
return x
mid = x[0]
l = filter(lambda k: k<mid, x)
r = filter(lambda k: k>mid, x)
return quickSort(l) + [mid] + quickSort(r)
否则,您可以得到无限递归,因为子问题不会变得更小。