圖解遞迴呼叫過程(Python)
阿新 • • 發佈:2019-02-04
最近在學習機器學習演算法中的決策樹演算法,其中在建樹的過程中用到了遞迴呼叫的思想,於是在這裡複習一下遞迴呼叫的一些知識。下面test1函式是轉自 “深入理解遞迴函式的呼叫過程”這篇部落格,後面兩個函式是我根據決策樹演算法中用到的遞迴簡化而成,主要是來看看遞迴呼叫的過程。
def test1(n):
print("level %d" % n)
if n<4 : test1(n+1)
print("level %d" % n)
def test2(n):
print("level %d" % n)
a = [1,2]
for key in a:
if key<n: test2(n-1)
print("level %d" % key)
def test3(n):
print("level %d" % n)
a = [1,2]
for key in a:
if key<n: test3(n-1)
else : print("level %d" % key)
首先看一下三個函式執行之後結果:
>>>test1(1)
level 1
level 2
level 3
level 4
level 4
level 3
level 2
level 1
>>>test2(2 )
level 2
level 1
level 1
level 2
level 1
level 2
>>>test3(2)
level 2
level 1
level 1
level 2
level 2
下面首先來看一下第一個函式test1(1)的執行過程,用圖片的形式來展示。由於不是嚴格的流程圖,所以並沒有按照流程圖的規範來畫,只作示意。
第二個函式test2(2)的執行過程。
第三個函式test3(2)的執行過程。