• 学习递归。递归是很多算法都使用的一种编程方法,是理解本书后续内容的关键。
  • 学习如何将问题分成基线条件和递归条件。第4章将介绍的分而治之策略使用这种简单的概念来解决棘手的问题。

我怀着激动的心情编写本章,因为它介绍的是递归——一种优雅的问题解决方法。递归是我最喜欢的主题之一,它将人分成三个截然不同的阵营:恨它的、爱它的以及恨了几年后又爱上它的。我本人属于第三个阵营。为帮助你理解,现有以下建议。

  • 本章包含很多示例代码,请运行它们,以便搞清楚其中的工作原理。
  • 请用纸和笔逐步执行至少一个递归函数,就像这样:我使用5来调用factorial,这将使用4调用factorial,并将返回结果乘以5,以此类推。这样逐步执行递归函数可搞明白递归函数的工作原理。

本章还包含大量伪代码。 伪代码是对手头问题的简要描述,看着像代码,但其实更接近自然语言。

results matching ""

    No results matching ""