小编que*_*989的帖子

Python QuickSort最大递归深度

(Python 2.7.8 Windows)

我正在对不同的排序算法(快速,气泡和插入)进行比较,并且大多数情况正如预期的那样,快速排序相当快,长列表和气泡和插入更快,非常短的列表和alredy排序的.

引发问题的是Quick Sort和之前提到的"已排序"列表.我可以排序甚至100000个项目的列表没有问题,但是从0 ... n的整数列表,限制似乎相当低.0 ... 500工作,但即使0 ... 1000给出:

RuntimeError: maximum recursion depth exceeded in cmp
Run Code Online (Sandbox Code Playgroud)

快速排序:

def quickSort(myList):
    if myList == []:
        return []
    else:
        pivot = myList[0]
        lesser = quickSort([x for x in myList[1:] if x < pivot])
        greater = quickSort([x for x in myList[1:] if x >= pivot])
        myList = lesser + [pivot] + greater
        return myList
Run Code Online (Sandbox Code Playgroud)

代码有什么问题,或者我错过了什么?

python sorting

4
推荐指数
1
解决办法
2974
查看次数

标签 统计

python ×1

sorting ×1