迭代和递归

文章对比了迭代与递归两种编程概念,解释它们在含义、结构和终止条件上的差异。迭代使用重复结构并修改计数器,而递归通过函数自身调用来实现重复。递归在遇到基本情况时终止,迭代则在循环条件不满足时结束。虽然递归在理解上可能更直观,但可能消耗更多资源;迭代虽然效率高,但在处理复杂数据结构时可能需要更多手动工作。因此,迭代更适合底层实现,递归则被视为更高级、抽象的解决方案。
摘要由CSDN通过智能技术生成

迭代与递归的区别

1.含义不同

递归是重复调用函数自身实现循环。遇到满足终止条件的情况时逐层返回来结束

迭代是函数内某段代码实现循环,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。迭代则使用计数器结束循环。

2.结构不同

递归与迭代都是基于控制结构,都涉及重复结构

迭代用重复结构,迭代显式使用重复结构

递归用选择结构,递归通过重复函数调用实现重复

3.终止条件不同

迭代在循环条件失败时终止,迭代一直修改计数器,直到计数器值使循环条件失败;

递归在遇到基本情况时终止,使用计数器控制重复的迭代和递归都逐渐到达终止点(递归不断产生最初问题的简化副本,直到达到基本情况。)

迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。

代码实现:不断重复调用某个方法,符合一定条件后,计算出结果值。常见的累加,累乘都是迭代算法策略的基础应用。

递归算法:实现思想一样,重复的调用方法。好理解,JVM运行慢

迭代算法:实现思想一样,重复的调用某段代码。不好理解,JVM运行快

实际:解决思路为第一!

迭代大部分时候需要人为的对问题进行剖析,将问题转变为一次次的迭代来逼近答案。迭代不像递归一样对堆栈有一定的要求,另外一旦问题剖析完毕,就可以很容易的通过循环加以实现。迭代的效率高,但却不太容易理解,当遇到数据结构的设计时,比如图‘表、二叉树、网格等问题时,使用就比较困难,而是用递归就能省掉人工思考解法的过程,只需要不断的将问题分解直到返回就可以了。

总结:迭代更为底层一些;递归更为高级一些,更抽象一些;所以,有“迭代为人,递归为神”的说法。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值