递归和迭代的区别与对比

本文探讨了递归和迭代的概念。递归是通过分解问题并逐步回归来解决,而迭代则使用现有值来推导新的值,通常更节省资源。在斐波那契数列的示例中,展示了递归和迭代的不同实现方式。递归虽直观但可能导致堆栈溢出,迭代则需要手动推导但效率更高。
摘要由CSDN通过智能技术生成

递归和迭代的区别和对比

导语

之前只是知道递归和迭代不同,但没有细究过个中细节。正巧今晚在刷leetcode的二叉树中序遍历时,要求用递归和迭代两种方法求解,才想起来细细区分一下二者的区别。

什么是递归

递归就是不断地将一个大问题分解为多个规模更小的小问题,当问题规模小到一定程度时,可以直接求解,再依次回归。于是递归其实是两个阶段:递推——回归。

递归的条件在于,子问题与父问题相同,要有递归的终止条件。

递归是从待求解的问题出发,分解到已知答案的最小问题上。

以斐波那契数列的求解为例,采用递归方式:

public int Fibonacci(int n){
   
	if(n > 1)
		return Fibonacci
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值