递归思想解读

xiaoxiao2021-02-28  107

递归:这两个字面的意思就非常形象化,递 就是传递,你把一个东西一层一层的传递下去;归 就是从最后一层,比如说你去故宫走过了一个门又一个门,然后等你走到头之后,你就要返回,所以说 归 就是 回,回到之前的位置。

所以递归要遵循两个原则:

函数自身调用自身,执行 递 的动作最后一次判断一个终止条件,执行 归 的动作 //先进入函数n,然后进入函数n-1...知道最后进入函数1 function(n)-->function(n-1)....function(1) //然后又从函数1,一直返回到函数n function(1)...function(n-1)-->function(n)

举一个栗子:(用JS求阶乘)

function factorial(n){ if(n == 1) { console.trace();//跟踪递归调用的过程 return 1;//终止条件-->“归” } return n * factorial(n-1);//自身调用自身-->“递” } alert(factorial(5));//120

我们感觉使用递归算法有点没头没脑,其实我们就是假设它已经成功了,然后我们找到 递 和 归 ,然后就让它自己去求解。

这种算法虽然效率比较低下,但是掌握之后我们用这种方法来编程我们会少思考很多东西,只要我们每一步的思路是正确的,那它跟着结果走就肯定会得到答案。

转载请注明原文地址: https://www.6miu.com/read-41095.html

最新回复(0)