定義:
在高級(jí)函數(shù)中,函數(shù)調(diào)用自己和調(diào)用其他函數(shù)并沒(méi)有本質(zhì)區(qū)別。我們把一個(gè)直接調(diào)用自己或者通過(guò)一系列的語(yǔ)句間接調(diào)用自己的函數(shù)稱為遞歸函數(shù)。
不過(guò),寫(xiě)遞歸函數(shù)的最應(yīng)該注意的就是陷入永不停止的無(wú)窮遞歸中。切記,每個(gè)遞歸定義必須至少有一個(gè)條件,當(dāng)滿足這個(gè)條件時(shí),函數(shù)不再調(diào)用自己。
遞歸和迭代的區(qū)別:
1.迭代使用的結(jié)構(gòu)是循環(huán)結(jié)構(gòu),遞歸使用的是選擇結(jié)構(gòu);
2.使用遞歸能使程序的結(jié)構(gòu)更加的清晰,更簡(jiǎn)潔,更容易讓人理解,從而減少讀懂代碼的時(shí)間;
3.大量的遞歸會(huì)建立函數(shù)的副本,會(huì)消耗大量的時(shí)間和內(nèi)存,而迭代則不需要這種付出;
4.遞歸函數(shù)分為調(diào)用和回退階段,遞歸的回退順序是它的調(diào)用順序的逆序。