java递归和迭代的区别

java递归和迭代的区别出现栈的溢出.而迭代不会!  递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:1)递归就是在过程或函数里面调用自身;2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口. 递归分为两个阶段:1)递推:把复杂的问题的求解推到比原问

大家好,又见面了,我是你们的朋友全栈君。

能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数据逐级演变为简单的算法!

递归是将上一步结果不断的压入站内, 所以递归很容易出现栈的溢出.而迭代不会!

 

 

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.

一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.

使用递归要注意的有两点:

1)递归就是在过程或函数里面调用自身;

2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口.

 

递归分为两个阶段:

1)递推:把复杂的问题的求解推到比原问题简单一些的问题的求解;

2)回归:当获得最简单的情况后,逐步返回,依次得到复杂的解.

 

迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B.

递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137968.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 3D机房效果图制作|创建步骤过程分步简述[通俗易懂]

    3D机房效果图制作|创建步骤过程分步简述[通俗易懂]三维机房效果图创建过程步骤,制作教程原创文章发布,多年实战经验简述:A:客户提供机房布置方案规划图之后,先沟通好,例如角落里是七氟丙烷柜,右侧是精密空调,后边是UPS配电柜,冷通道是双排还是单排的,这个要搞清楚,不然后边修改就麻烦了。B:思路理清之后就可以整理CAD图纸了,删除辅助线,标注尺寸,地面和墙面填充,删除多余线条,然后复制好整理的图纸。机房整体鸟瞰角度效果图案例C:打开三维软件,用脚本粘贴刚才的图纸,一键归零合并冻结。D:确定好角度,这个需要反复测试几十次,看了网上很多的.

    2022年6月2日
    47
  • java 异或加密_使用异或实现一个简单的加密或解密

    java 异或加密_使用异或实现一个简单的加密或解密/**Copyright(C)2017,MegatronKing**LicensedundertheApacheLicense,Version2.0(the”License”);youmaynotusethisfileexcept*incompliancewiththeLicense.YoumayobtainacopyoftheLicenseat**http://www.apache.org/licenses/.

    2022年10月4日
    0
  • AspectJ教学

    AspectJ教学

    2021年12月3日
    38
  • 内存分配——静态存储区 栈 堆 与static变量

    内存分配——静态存储区 栈 堆 与static变量一、内存基本构成   可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。   静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。   栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的

    2022年6月10日
    29
  • 设计模式–解释器模式(Interpreter)

    设计模式–解释器模式(Interpreter)

    2021年7月30日
    50
  • 华为C8816电信版ROOT过程

    华为C8816电信版ROOT过程

    2021年12月14日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号