import random
def quickSort(L, low=0, high=None):
i = low
if high:
j = high
else:
j = len(L)-1
if i >= j:
return L
key = L[i]
while i < j:
while i < j and L[j] >= key:
j = j-1
L[i] = L[j]
while i < j and L[i] <= key:
i = i+1
L[j] = L[i]
L[i] = key
quickSort(L, low, i-1)
quickSort(L, j+1, high)
return L
L = []
for i in range(10):
L.append(int(random.random()*10000))
print L
quickSort(L)网上现成的快排算法,我稍微改了一下,但是运行的时候怎么就报错。我感觉没毛病啊。 File "/Users/apple/workspace/crypto/crypto/quick_sort.py", line 20, in quickSort quickSort(L, low, i-1) File "/Users/apple/workspace/crypto/crypto/quick_sort.py", line 20, in quickSort quickSort(L, low, i-1) File "/Users/apple/workspace/crypto/crypto/quick_sort.py", line 20, in quickSort quickSort(L, low, i-1) File "/Users/apple/workspace/crypto/crypto/quick_sort.py", line 20, in quickSort quickSort(L, low, i-1)RuntimeError: maximum recursion depth exceeded时好时不好,超过python递归深度限制了?
3 回答
凌舞青春
TA贡献3条经验 获得超1个赞
百度了一下你的错误,找到了这个,希望对你有用,其实很多东西百度都能搜到的。
这段时间用Python写了一个爬冲脚本,在抓取页面采用广度优先遍历抓取。但是当遍历到900多时就会出现莫名其妙的错误,通过pdb调试发现是:
RuntimeError: maximum recursion depth exceeded
在网上查了,发现python默认的递归深度是很有限的,大概是900多的样子,当递归深度超过这个值的时候,就会引发这样的一个异常。
解决的方式是手工设置递归调用深度,方式为
import sys
sys.setrecursionlimit(1000000) #例如这里设置为一百万
添加回答
举报
0/150
提交
取消