Python - 快速排序 - 超过最大递归深度

标签 python recursion quicksort

这是我的代码:

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 个列表,并使 thislowerupper 都引用该列表。列出 3 个 list 。

this = []
lower = []
upper = []

关于Python - 快速排序 - 超过最大递归深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048119/

相关文章:

python ,SQLAlchemy : Create bounding circle for GPS Coordinates?

python - Selenium Edge Python 错误在测试执行后自动关闭 Edge 浏览器

C - 如何修复递归函数返回类型错误

powershell - 如何使用PowerShell递归删除具有特定名称的文件夹?

c - QuickSort 排序正整数,有时排序后第一个值是负整数

当条目 >= 10 时,javaScript 快速排序不起作用

python - 将复数列表写入为二进制数据

python - 为什么我在进行网页抓取时出现错误

java - 在java中使用递归方法进行内存

java - 混合快速排序 + 插入排序 java.lang.StackOverflowError