java递归和迭代的区别

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

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

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

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

 

 

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

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

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

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

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

 

递归分为两个阶段:

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

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

 

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

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

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

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

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


相关推荐

  • python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]

    python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]1、if条件语句语法if条件:条件成立执行的代码1条件成立执行的代码2……2、快速体验if条件语句下面通过一个实例来体验if条件语句#条件成立执行代码1和2,条件不成立时执行代码3ifTrue:#条件成立print(‘条件成立执行的代码1’)print(‘条件成立执行的代码2’)else:#条件不成立print(‘条件成立执行的代码3’)#下方的代码没有缩进到if语句块,所以…

    2022年9月26日
    2
  • oracle修改用户名密码语句_oracle修改数据库用户名

    oracle修改用户名密码语句_oracle修改数据库用户名oracle修改用户名,密码首先我们打开命令行,cmd,进入oracle的后台管理界面,当然,还有很多其他的方式可以进入oracle后台管理界面,比如使用PL/SQL界面化工具,或者使用oracle自带的SQL工具。打开命令窗口,登录oracle后台管理界面:具体命令为在运行处输入cmd,在弹出的命令提示窗口输入setoracle_sid=数据库名称,输入sqlplus进入ora…

    2022年7月28日
    7
  • sigaction信号处理

    sigaction信号处理1.sigactionintsigaction(intsignum,conststructsigaction*act,structsigaction*oldact);signum:可以指定SIGKILL和SIGSTOP以外的所有信号2.structsigactionstructsigaction{void(*sa_handler)(int);

    2022年5月26日
    37
  • Java map转scala map

    Java map转scala mappublicstaticvoidmain(String[]args){Map,String>map=newHashMap,String>(){{put(“1″,”2”);}};scala.collection.mutable.Map,String>mapTest=JavaConverters.mapAsScalaMapConverter(map).a

    2022年7月15日
    15
  • MOS开关电路_场效应管开关电路 实例

    MOS开关电路_场效应管开关电路 实例1mos管和三极管是构成芯片的基础元件,分立和mos,三极管在我们平常的电路中也是用的最多的。mos和电压控制型元件,而三极管是电流控制型元件。分别在mos的GS和三极管的IB给到一定的电压和电流,在mos的DS和三极管的CE就会有相应的电压变化。根据这个变化可以做成放大电路和开关电路,开关电路即放大电路的状态达到饱和状态。今天分享MOS的两个开关电路2.电平转换电路这个电路是双向电平转换电路分析:当uc_io为低电平时,M1导通,V2的电流流过R2,经过M1的DS到uc_io的低电平,从而实

    2022年9月19日
    5
  • Linux下Tomcat的安装配置

    Linux下Tomcat的安装配置Linux下Tomcat的安装配置一.下载安装对应的jdk,并配置Java环境。官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html

    2022年6月2日
    54

发表回复

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

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