[英]python recursion function depth
該程序使用插入排序對列表進行遞歸排序...有人可以讓我理解'isort'的遞歸工作方式,以及即使在'isort'遞歸后'insert'也是如何運行的,isort遞歸是否被掛起直到完全運行一次?
def insertion(seq):
isort(seq,len(seq))
def isort(seq,k):
if k>1:
isort(seq,k-1)
insert(seq,k-1)
def insert(seq,k):
pos=k
while pos>0 and seq[pos]<seq[pos-1]:
(seq[pos],seq[pos-1])=(seq[pos-1],seq[pos])
pos=pos-1
看看isort(seq, k)
該函數確保對最后k個元素進行排序
def isort(seq,k):
if k>1:
isort(seq,k-1)
// seq[k-1:] is sorted
insert(seq,k-1)
// the k'th item is now inserted in the correct place,
// so seq[k:] is sorted
對於k=len(seq)
,對seq[k:]
進行簡單排序(這是一個空列表),遞歸在每一步中將k
減1,從尾到頭對seq進行排序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.