• 递归算法的一些规则


    递归的通用规则:

    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

  • 相关阅读:

    logging 模块和日志
    re 模块和正则表达式
    collections 模块
    hashlib 模块
    序列化 json 和 pickle
    C++之以分隔符的形式获取字符串
    读取配置文件所在路径时的一种常见错误
    char和achar互转
    C++之ARX,Acstring,ACahr转char
  • 原文地址:https://www.cnblogs.com/caidi/p/5999506.html
Copyright © 2020-2023  润新知