zoukankan      html  css  js  c++  java
  • 递归算法的一些规则

    递归的通用规则:

    1 每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行。

    2 递归函数中,位于递归调用前的语句和被调函数具有相同的顺序。如打印语句 #1 位于递归调用语句前,它按照递归调用的顺序被执行了 4 次。

    3 每一级的函数调用都有自己的私有变量。

    4 递归函数中,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反。

    5 虽然每一级递归有自己的变量,但是函数代码并不会得到复制。

    6 递归函数中必须包含可以终止递归调用的语句。

     

      4
      5     // used for recursion invoke example
      6     private static void up_and_down(int n) {
      7         System.out.println("Level " + n + ": location " + System.identityHashCode(n));  #1
      8         if (n < 4) {
      9             up_and_down(n + 1);            
     10         }
     11         System.out.println("after ==== Level " + n + ": location " + System.identityHashCode(n));
     12     }

     

     

    运行结果如下:

    Level 1: location 2055496604
    Level 2: location 886982024
    Level 3: location 1822883541
    Level 4: location 1201965485
    after ==== Level 4: location 1201965485
    after ==== Level 3: location 1822883541
    after ==== Level 2: location 886982024
    after ==== Level 1: location 2055496604

  • 相关阅读:
    解决ios下iframe不能滑动
    每天一题之js执行顺序
    async函数的返回值
    小程序自定义Tabbar
    windows10配置vue3项目踩坑记录
    vue2+循环链表解决一个历史趣题
    小程序内协议使用的三种方法
    HDFS的java操作
    HDFS工作原理笔记
    win10已经编译好的hadoop2.6.5
  • 原文地址:https://www.cnblogs.com/caidi/p/5999506.html
Copyright © 2011-2022 走看看