递归和迭代的差别

递归和迭代的差别

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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

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

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

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.

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

 

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

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

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


相关推荐

  • 中缀表达式转换为后缀表达式(栈的使用)

    中缀表达式如1*2+(2-1), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家编程中写的表达式。编译系统不考虑表达式的优先级别, 只是对表达式从左到右进行扫描, 当遇到运算符时, 就把其前面的两个操作数取出, 进行操作。为达到上述目的, 就要将中缀表达式进行改写,变为后缀表达式 如上面的表达式1*2+(2-1), 就变为12*21-+;后缀表达式中不含有括号, 且

    2022年3月9日
    56
  • 【mysql】细说 数据库隔离级别 及实现

    【mysql】细说 数据库隔离级别 及实现网上大多数关于隔离级别的文章都是讲了事务中的问题以及隔离级别可以解决的问题,我这次想看看数据库底层是如何实现隔离级别的。不过还是先来回顾一下隔离级别以及可能发生的问题。1.脏读:指的是一个事务的读操作读到了另一个未提交的事务修改的值。比如下面的场景:脏读的问题是,读到的值可能会被回滚,那么这个值就是失效的,不能继续使用,否则会有一致性问题。2.不可重复读:指的是一个事务读…

    2022年5月25日
    57
  • 下列那个类有获取PropertyDescriptor实例的方法_java获取properties的值

    下列那个类有获取PropertyDescriptor实例的方法_java获取properties的值一、软件包java.beans   包含与开发beans有关的类二、PropertyDescriptor  PropertyDescriptor描述JavaBean通过存储器方法导出的一个属性构造方法:PropertyDescriptor(StringpropertyName,Class<?>beanClass)PropertyDe…

    2022年9月30日
    4
  • C#中关于Struct(结构体)介绍以及附带案例解释,一看就会,一学就懂系列[通俗易懂]

    C#中关于Struct(结构体)介绍以及附带案例解释,一看就会,一学就懂系列[通俗易懂]Struct结构体的含义:结构体的作用?结构体的特点?结构体的声明?结构体的注意事项?…

    2022年10月6日
    3
  • 量子通讯加密技术的技术原理

    量子通讯加密技术的技术原理1什么是量子一个物理量如果存在最小的不可分割的基本单位,则这个物理量是量子化的,并把最小单位称为量子。量子英文名称量子一词来自拉丁语quantus,意为“有多少”,代表“相当数量的某物质”。在物理学中常用到量子的概念,指一个不可分割的基本个体。例如,“光的量子”(光子)是一定频率的光的基本能量单位。而延伸出的量子力学、量子光学等成为不同的专业研究领域。其基本概念为所有的有形性质是“可量子化的”。“

    2022年6月7日
    99
  • t分布, 卡方x分布,F分布

    t分布, 卡方x分布,F分布T分布:温良宽厚本文由“医学统计分析精粹”小编“Hiu”原创完成,文章采用知识共享Attribution-NonCommercial-NoDerivatives4.0国际许可协议(http://c

    2022年8月2日
    8

发表回复

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

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