目录前言递归的基本理解实例解析求斐波那契数时间复杂度分析空间复杂度分析执行顺序分析前言 我们在写业务代码的时候,或多或少都会遇到需要使用递归的场景,比如在遍历树形结构时。 本文将通过
我们在写业务代码的时候,或多或少都会遇到需要使用递归的场景,比如在遍历树形结构时。
本文将通过递归的经典案例:求斐波那契数来讲解递归,通过画递归树的方式来讲解其时间复杂度和空间复杂度以及递归的执行顺序,欢迎各位感兴趣的开发者阅读本文。
表象理解
实质理解
具体实现
接下来我们通过一个实例来讲解递归的应用。
求特定位置的斐波那契数,用递归实现代码很简单,接下来我们先看下斐波那契数的概念。
我们知道怎么计算斐波那契数后,就可以用递归来将其实现了。
我们可以将上述递归的理解中应用到求斐波那契数里,实现思路和实现代码如下:
const fibonacciNumbers = function(n){
// base case
if(n === 0){
return 0;
}else if(n === 1){
return 1;
}
// Recursive rule
return fibonacciNumbers(n - 1) + fibonacciNumbers( n - 2);
}
我们将上述代码执行过程转换成如下图所示的递归树,观察二叉树中的节点后我们发现如下规律:
分析空间复杂度我们可以通过递归的执行顺序来分析,我们将上述代码的执行顺序整理成递归图标示其执行顺序,我们发现如下规律:
上述递归图的执行顺序如下图所示,接下来带着代价来分析下每一步都做了哪些事情:
以上就是深入了解javascript中递归的理解与实现的详细内容,更多关于JavaScript递归的资料请关注编程网其它相关文章!
--结束END--
本文标题: 深入了解JavaScript中递归的理解与实现
本文链接: https://www.lsjlt.com/news/152690.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-20
2024-03-20
2024-03-20
2024-03-20
2024-03-20
2024-03-20
2024-03-20
2024-03-19
2024-03-19
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0