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

  • 相关阅读:
    Django的自关联
    Django的登录模块
    Django和SQL语句的对应参考
    Django 内置分页的写法
    Django 自定义分页
    经典语句,看看让心灵宁静
    《此生未完成》读后感
    JavaScript杂谈(顺便也当知识积累)
    我总结的js性能优化的小知识
    我总结的js方面你可能不是特别清楚的小知识
  • 原文地址:https://www.cnblogs.com/caidi/p/5999506.html
Copyright © 2011-2022 走看看