奋斗小羊的成长点滴 Java Coder 耶稣爱你,上帝祝福你

递归

2018-11-07

阅读:


递归

递归求解问题的分解过程,去的过程叫“递”,回来的过程叫“归”。

  • 利 代码简洁高效
  • 弊 堆栈溢出、重复计算、函数调用耗时多、空间复杂度高等

递归需要满足的三个条件

  • 一个问题的解可以分解为几个子问题的解
  • 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样。
  • 存在递归终止条件

写递归代码关键

找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。 计算机擅长作重复的事情,所以递归正和它胃口。

理解递归代码的关键是,只要遇到递归,我们就把它抽象成一个递推公式,不用想一层层的调用关系,不要试图用人脑去分解递归的每一个步骤。

警惕

  • 递归代码要警惕堆栈溢出
  • 递归代码要警惕重复计算

上一篇 队列

目录