码迷,mamicode.com
首页 > 其他好文 > 详细

递归例子大全(持续更新)

时间:2018-11-12 13:18:50      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:一个   问题解决   缩小   分享   逻辑   inf   简单   执行   不用   

前言

  递归这个鬼东西,明明知道他的意思,但每次都总不能理顺它,一直懵懵懂懂,所以,我准备找一大堆例子去练熟理解。

  这里准备的都是PHP代码例子~

概念

  先说说递归的概念。

  什么是递归,其实上过高中的估计都有了解过,简单来说,递归就是调用自身。

  在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。实际上,递归,顾名思义,其包含了两个意思:递 和 归,这正是递归思想的精华所在。

  递归就是有去(递去)有回(归来),如下图所示。“有去”是指:递归问题必须可以分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决,就像上面例子中的钥匙可以打开后面所有门上的锁一样;“有回”是指 : 这些问题的演化过程是一个从大到小,由近及远的过程,并且会有一个明确的终点(临界点),一旦到达了这个临界点,就不用再往更小、更远的地方走下去。最后,从这个临界点开始,原路返回到原点,原问题解决。

技术分享图片

  递归三要素:

    1、明确递归终止条件;

    2、给出递归终止时的处理办法;

     3、提取重复的逻辑,缩小问题规模。

  ··························································好了,废话就不多少了,上例子熟悉····························································

例子

  

function test ($n){
    echo $n." ";
    if($n>0){
        test($n-1);
    }else{
        echo "";
    }
    echo $n." ";
}

test(2);

输出:2 1 0 0 1 2

解析:

  递去:

  执行test(2)  n = 2; 输出:2; n > 0 输出:(空格)执行test(n – 1)

  执行test(1)  n = 1; 输出:1; n > 0 输出:(空格)执行test(n – 1)

  执行test(0)  n = 0; 输出:0; n < 0 输出:(空格)

  停止

  归来:

  输出:0

  输出:1

  输出:2

递归例子大全(持续更新)

标签:一个   问题解决   缩小   分享   逻辑   inf   简单   执行   不用   

原文地址:https://www.cnblogs.com/wwjchina/p/9723076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!