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)網(wǎng)上現(xiàn)成的快排算法,我稍微改了一下,但是運行的時候怎么就報錯。我感覺沒毛病啊。??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貢獻(xiàn)3條經(jīng)驗 獲得超1個贊
百度了一下你的錯誤,找到了這個,希望對你有用,其實很多東西百度都能搜到的。
這段時間用Python寫了一個爬沖腳本,在抓取頁面采用廣度優(yōu)先遍歷抓取。但是當(dāng)遍歷到900多時就會出現(xiàn)莫名其妙的錯誤,通過pdb調(diào)試發(fā)現(xiàn)是:
RuntimeError: maximum recursion depth exceeded
在網(wǎng)上查了,發(fā)現(xiàn)python默認(rèn)的遞歸深度是很有限的,大概是900多的樣子,當(dāng)遞歸深度超過這個值的時候,就會引發(fā)這樣的一個異常。
解決的方式是手工設(shè)置遞歸調(diào)用深度,方式為
import sys ?
sys.setrecursionlimit(1000000) #例如這里設(shè)置為一百萬
添加回答
舉報
0/150
提交
取消