【发布时间】:2017-12-05 18:44:35
【问题描述】:
该程序使用插入排序对列表进行递归排序... 有人可以让我理解“isort”如何递归工作以及“插入”如何在“isort”递归之后运行,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
【问题讨论】:
-
不确定这是否解释了它,但相关:youtube.com/watch?v=ROalU379l3U
-
嗯,这段代码确实是插入排序,但是赋值操作被swap代替了。
-
是的,没必要,它只是一个递归示例