java递归和迭代的区别

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

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

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

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

 

 

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

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

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

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

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

 

递归分为两个阶段:

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

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

 

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

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

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

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

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


相关推荐

  • 微信公众平台开发入门教程——方倍工作室

    微信公众平台开发入门教程——方倍工作室微信公众平台开发入门教程——方倍工作室http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

    2022年6月5日
    23
  • Teamviewer无法连接,日志报错error 10049「建议收藏」

    Teamviewer无法连接,日志报错error 10049「建议收藏」Teamviewer无法连接,一直处于”Notready.Pleasecheckyourconnection”状态,无法获取到连接ID,也无法通过ID连接Partner,但是电脑的网路连接正常(网页能上,各种网络应用程序都可以使用),并且FireWall都处于off状态.查看teamveiwer的程序日志(从Extral->Openlogfile可以打开)后,报Error10049

    2022年10月1日
    3
  • gfs杂谈

    gfs杂谈nbsp 0 构建过程 nbsp 组件失效是一种常态 应用程序 bug nbsp 操作系统 Bug nbsp 人为失误 nbsp 硬盘内存连接器 nbsp 网络 nbsp 电源失效等造成的问题因此需要持续监控 错误侦测 灾难冗余 自动恢复的机制 这样就是 GFS 慢慢构建成骨架的过程 nbsp 基于数亿个对象和 TB 级别数据量 管理已 KB 为单位的文件显然不明智 IO 和 Block 尺寸都需要重新考虑 nbsp 真实生活中 对文件

    2025年9月5日
    3
  • hashmap数组什么时候扩容_hashmap是数组还是链表

    hashmap数组什么时候扩容_hashmap是数组还是链表为什么需要扩容?因为HashMap为了节省创建出的对象的内存占用,一开始只默认分配:staticfinalintDEFAULT_INITIAL_CAPACITY=1<<4;也就是默认的数组大小是16个,而在HashMap的源码中可以发现HashMap扩容方法如下,就是说当HashMap里存储元素的个数大于threshold(capacity*loadFactor时,会进行扩容,…

    2025年12月11日
    1
  • 多尺度二维离散小波分解wavedec2

    多尺度二维离散小波分解wavedec2对X进行N尺度小波分解[C,S]=wavedec2(X,N,’wname’);clc,clearall,closeall;loadwoman;[c,s]=wavedec2(X,2,’db1′);%进行2尺度二维离散小波分解。分解小波函数-db1[cH1,cV1,cD1]=detcoef2(‘all’,c,s,1);%尺度1的所有方向的高频系数[cH2,cV2,c…

    2022年7月23日
    11
  • 校验和(Checksum)「建议收藏」

    校验和(Checksum)「建议收藏」校验和(Checksum)PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有

    2022年8月5日
    5

发表回复

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

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