这是我的代码:
from random import randint
def quick_sort(sort_me):
if len(sort_me) < 2:
return sort_me
pivot = sort_me[0]
this = lower = upper = []
for x in sort_me:
if x < pivot:
lower.append(x)
elif x > pivot:
upper.append(x)
else:
this.append(x)
return quick_sort(lower) + this + quick_sort(upper)
我在终端所能看到的就是:
File "sorts.py", line 19, in quick_sort
return quick_sort(lower) + this + quick_sort(upper)
RuntimeError: maximum recursion depth exceeded
我认为this
列表有问题,但我不知道是什么。救命啊!
答案 0 :(得分:5)
this = lower = upper = []
分配永远不会在Python中创建副本。这一行不会创建3个列表;它会创建1个列表,并使this
,lower
和upper
都引用该列表。制作3个清单。
this = []
lower = []
upper = []