这是我的代码:
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
列表有问题,但我不知道是什么。帮助!
最佳答案
this = lower = upper = []
赋值从不在 Python 中创建副本。此行不会创建 3 个列表;它创建 1 个列表,并使 this
、lower
和 upper
都引用该列表。列出 3 个 list 。
this = []
lower = []
upper = []
关于Python - 快速排序 - 超过最大递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048119/