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

递归和迭代的区别「建议收藏」递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点: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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2021激活码(JetBrains全家桶)

    (phpstorm2021激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月20日
    61
  • javascript 页面后退并刷新

    javascript 页面后退并刷新javascript做页面后退常使用的方法是window.history.back();这样确实可以做到后退的功能,但是项目中,常常并不只是后退就行完成需求,往往需要在后退的同时,刷新后退的页面信息,比如后退到首页同时刷新首页的最新数据,这样的需求通过上面这种方法就没法满足了,为了实现这个需求,我们需要使用到document.referrer这个方法可以取到上一个页面的具体路径

    2022年7月25日
    9
  • 构建LAMP架构_lamp和lnmp区别

    构建LAMP架构_lamp和lnmp区别LAMP架构LAMP架构简介Apache简介编译安装Apache编译安装Mysql编译安装PHP编译安装phpMyadminLAMP架构简介LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。Apache简介ApacheHTTPServer是开源软件项目的杰出

    2022年10月9日
    0
  • 第十五章《键的管理》

    第十五章《键的管理》

    2021年5月29日
    86
  • getenv(php7.0以上版本不不能使用的问题)[通俗易懂]

    getenv(php7.0以上版本不不能使用的问题)[通俗易懂]getenv(php7.0以上版本不不能使用的问题)

    2022年4月24日
    51
  • pycharm配置远程服务器_服务器asp环境配置

    pycharm配置远程服务器_服务器asp环境配置前言1、说明首先介绍下我本人情况,我在windows笔记本电脑上下载了Pycharm专业版,因为我本人只是用来跑代码,想把代码自动同步起来,因此特地通过pycharm来远程使用Linux上配置好的环境,加速代码运行。当然大家也可以使用Xshell等软件,使用命令行来操作。2、环境介绍目前使用的环境:Linux:20.04Pycharm:2019专业版Windows:64位Anaconda:Python3.7一、添加并设置部署1、点击Pycharm工作栏上方“Tools->

    2022年8月28日
    0

发表回复

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

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