尾遞迴優化

2021-09-19 23:52:11 字數 450 閱讀 6272

什麼是尾遞迴

尾遞迴就將遞迴呼叫寫在函式的尾部return 

尾遞迴的好處

解決傳統遞迴的棧溢位問題

尾遞迴適合的業務場景

1.需要遞迴優化的函式沒有用timeout等非同步佇列進行遞迴呼叫函式自己

2.需要遞迴優化的遞迴函式的返回值不是每次都返回,而是條件性返回

尾遞迴優化後的遞迴demo

/**

* @method 測試尾遞迴demo方法 尾遞迴適合的業務場景 適合

* @des 此方法為遞迴呼叫

* @param a 累加的數字

* @returns 遞迴執行的累加結果

*/function test(a)

console.log(test(1))

尾遞迴優化

尾遞迴就是遞迴語句在函式最後執行,且無需對返回值進行進一步操作。編譯器會對這種遞迴進行優化,在進入深層遞迴時候,不是在遞迴棧進行入棧操作,而是直接覆蓋棧頂。線性遞迴與尾遞迴區別如下 線性遞迴 1 2 3 4 5 longrescuvie longn 尾遞迴 1 2 3 4 5 6 7 8 9 10 ...

尾調遞迴 ,尾調優化

尾調優化 title head body p pre 尾調優化,值得是函式最後一步呼叫了另乙個函式,函式呼叫會在內部形成乙個 呼叫記錄 儲存呼叫位置,內部變數等,a函式呼叫b函式,形成乙個 a到b的呼叫幀,直到結果返回,幀消失,b呼叫c函式,這樣,就形成了 呼叫棧,pre p h4 pre 尾調,不...

Kotlin尾遞迴優化

一 尾遞迴優化 1.遞迴的一種特殊形式 2.呼叫自身後無其他的操作 3.tailrec關鍵字提示編譯器尾遞迴優化 二 具體的來看看一下 說明 package net.println.kotlin.chapter5.tailrecursive author wangdong description 定...