zoukankan      html  css  js  c++  java
  • Java ----- 递归与迭代

    1、迭代与递归的定义 : 简单来说迭代是重复运算,递归是使用一个简单的语句替换这个重复的运算

    迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

    在计算机科学中,迭代是程序中对一组指令(或一定步骤)的重复。它既可以被用作通用的术语(与“重复”同义),也可以用来描述一种特定形式的具有可变状态的重复。

      在第一种意义下,递归是迭代的一个例子,但是通常使用一种递归式的表达。比如用0!=1,n!=n*(n-1)!来表示阶乘。而迭代通常不是这样写的。

      而在第二种(更严格的)意义下,迭代描述了在指令式编程语言中使用的编程风格。与之形成对比的是递归,它更偏向于声明式的风格。

    递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。

    使用时注意:递归就是在过程或函数里面调用自身;必须有一个明确的递归结束条件,称为递归出口;递归包含回溯和递推两个阶段。

    2、在程序中具体使用

    常见的迭代语句:While、do-while和for (以及foreach),对就是我们常见的循环语句

    如下:使用递归和迭代计算  从1 加到 100

    是不是感觉 n*(1+n)/2 很熟悉,就是数学中的找规律,所诞生的公式,至于两者之间的速度就不用说了白,

    一个努力的小孩子一点点计算,一个是聪明的小孩子直接找规律套公式

  • 相关阅读:
    POJ 1860
    Notepad++ 经常使用快捷键 (MEMO)
    SpringMVC现实
    krpano漫游加方向性3D声音(这篇文章已被移到krpano中国网站 krpano360.com)
    DFS PKU 1562
    Java中间(三十五)-----Java详细设置(一个):请指定初始容量设置
    HDU 5052 Yaoge’s maximum profit 光秃秃的树链拆分 2014 ACM/ICPC Asia Regional Shanghai Online
    智课雅思词汇---二十五、-ate
    新东方雅思词汇---8.3、apt
    新东方雅思词汇---7.4、cap
  • 原文地址:https://www.cnblogs.com/obge/p/14134077.html
Copyright © 2011-2022 走看看