(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)
代码有什么问题,或者我错过了什么?