首页 > 其他 > 详细

多递归点的程序顺序分析

时间:2020-02-17 23:01:58      阅读:105      评论:0      收藏:0      [点我收藏+]

程序中的递归的定义:

1. 程序调用本身的过程,称之为递归

那么一个程序中出现多个递归调用,这个过程是怎么样呢?如下图:

    public static int dfs(int n){
        if (n == 2)
            return 1;
        if (n == 1)
            return 1;

        return dfs(n - 1) + dfs(n - 2);
    }

技术分享图片

 

技术分享图片

 

技术分享图片

 

 

第一张图和第二张图相比而言,调整了递归点。一个是dfs(n - 1) + dfs(n - 2),以及dfs(n - 2) + dfs(n - 1)。证明了首先进入的是程序中第一个递归调用点。

第二张图和第三张图相比而言,是相同的递归结构,但是表明的是在dfs(n - 1)递归结束之后,再一次递归的时候是首先从头开始进入第二个递归的。然后开始拼接。

 从这三张图中可以看到,首先进入的是第一个递归调用点,一直到第一个递归调用点进入结束条件,然后在进入第二个递归调用点。 

多递归点的程序顺序分析

原文:https://www.cnblogs.com/jihuabai/p/12323781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!