簡體   English   中英

python遞歸函數深度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM