递归和迭代的区别「建议收藏」

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

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

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

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

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

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

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

 

递归分为两个阶段:

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

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

 

利用递归可以解决很多问题:如背包问题,汉诺塔问题,…等.

斐波那契数列为:0,1,1,2,3,5…

fib(0)=0;

fib(1)=1;

fib(n)=fib(n-1)+fib(n-2);

 

上面就是一个简单的递归调用了.由于递归引起一系列的函数调用,并且有可能会有一系列的重复计算,递归算法的执行效率相对较低.

 

 

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

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

 

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

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

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


相关推荐

  • 设置IP地址、子网掩码、网关和DNS(手动获得IP地址默认网关)

    IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)转载:https://blog.csdn.net/kingshown_WZ/article/details/46423771概念:1.概述IP地址:人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址,通过IP地址就可以访问到每台主机。…

    2022年4月15日
    78
  • SEVERE: Error filterStart 错误解决「建议收藏」

    SEVERE: Error filterStart 错误解决「建议收藏」使用jfinal写的项目,去掉jetty包,加入javaee.jar包,然后打包,部署到ubuntu的tomcat6下运行

    2022年7月15日
    16
  • QThread的用法

    概述QThread类提供了一个与平台无关的管理线程的方法。一个QThread对象管理一个线程。QThread的执行从run()函数的执行开始,在Qt自带的QThread类中,run()函数通过调用exec()函数来启动事件循环机制,并且在线程内部处理Qt的事件。在Qt中建立线程的主要目的就是为了用线程来处理那些耗时的后台操作,从而让主界面能及时响应用户的请求操作。下面就谈谈如何利用QT

    2022年4月3日
    94
  • c语言 goto 跳出循环,goto语句可以跳出循环.ppt

    c语言 goto 跳出循环,goto语句可以跳出循环.pptgoto语句可以跳出循环.ppt循环结构顺序、分支、循环是结构化程序设计的三种基本结构,本章主要任务是学习如何使用循环结构解决问题。主要内容for循环do循环while循环循环的中断任务1任务功能:计算1~100之间的奇数和及偶数和学习目的:利用for循环解决简单问题;程序代码privatevoidbutton1_Click(obj…

    2022年5月29日
    38
  • FRP 内网穿透下载配置[通俗易懂]

    FRP 内网穿透下载配置[通俗易懂]FRP内网穿透下载配置Frp服务的建造下载:修改配置文件frps.ini(服务端)配置文件解释说明:frpc.ini(客户端)配置文件解释说明:启动服务配置启动:创建server端服务脚本:(centos6)创建客户端服务脚本:公网服务器端:CentOS6防火墙配置文件位置CentOS7防火墙配置文件位置联系我Frp服务的建造搭建FRP很简单,关键的步骤只有三步:1,获取FRP文件;2,设置FRP配置文件;3,启动FRP服务。下载:下载地址:https://github.com/

    2025年11月8日
    6
  • axurerp8授权码最新_ue注册码

    axurerp8授权码最新_ue注册码Licensee:UniversityofScienceandTechnologyofChina(CLASSROOM)Key:DTXRAnPn1P65Rt0xB4eTQ+4bF5IUF0gu0X9XBEUhM4QxY0DRFJxYEmgh4nyh7RtLLicensee:IloveyouAxureKey:UChpuxwbDW6eAIaAf9UujEFSBwN3vpEz9snHv…

    2025年5月27日
    2

发表回复

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

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