zoukankan      html  css  js  c++  java
  • 关于递归

    什么是递归?

    任何函数调用自己都叫做递归,不管是直接的还是间接的,递归方法通过调用自己来解决一个问题的一部分。这就叫递归步骤。递归步骤一般会引发一系列的递归(当然了这是废话,不然就不叫做递归了)。这里面有一个重要的点就是要确保你的递归函数有个终止条件(不然的话就出不来了)。每一次的递归都是解决原问题的一个小问题,并且这个小问题是原问题的一个副本(像套娃一样,一层比一层小但是除了代销其他方面都很相似),一系列的小问题解决后必须能解决最终要解决的问题(也是废话,想看到套娃里面的东西,你要一层一层的打开看,最终才能看到里面是什么)。

    为什么要用递归呢?

    递归是从数学中借用的方法。因为有些问题用递归写出来的代码比循环代码要短小,一般来说,循环代码在编以或是解释后都回变成递归结构。对于可分成一系列相似的子任务的任务,递归使用起来就很方便了。例如:排序,搜索,遍历等问题都有相应的递归解决方法。

    递归函数的格式

    递归函数通过调用自己来解决一个任务的子任务。到某个点,函数遇到的子任务它再不需要调用自己就能解决的时候(类似打开到最后一层),这一层叫做base case,相应的前面的都要调用自己的子任务也有名字,叫做recursive case。下面句式递归函数的一般形式:

    if( test for the base case )
        return some base case value;
    else if( test for another base case )
        return some other base case value;
    // the recursive case
    else
        return ( some work ) and then ( a recursive call )
  • 相关阅读:
    前端Javascript
    第十一周双闭环控制
    补第九周手绘图
    第十一周仿真作业
    第九周PLECS仿真
    第五六周读书笔记
    PLECS模拟与设计结构-4
    机电传动控制读书笔记-3
    PLECS仿真报告2
    PLECS仿真报告
  • 原文地址:https://www.cnblogs.com/programnote/p/4713377.html
Copyright © 2011-2022 走看看