在我的博文关于递归的一些简单想法,我用自己的理解谈了一些关于递归的看法,下面用 《数据结构与算法分析——C语言描述》 一书中第 9 页的四条基本原则将我的思想加以规范化,并在后续的不断加强学习中不断完善本文的内容。

在编写递归程序的时候,要牢记递归的四条基本原则:

  1. 基准情形:必须总有某些基准情形,它无需递归就能解出 —— 构成递归终止条件
  2. 不断推进:对于那些需要递归求解的情形,每一次递归调用都必须要使求解状况朝接近基准情形的方向推进 —— 由初始情形通过递归调用不断向递归终止条件推进
  3. 设计法则:假设所有的递归调用都能运行
  4. 合成效益法则:在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作(三天内在斐波那契数列的实现中详细介绍这条法则并补充本文内容)