Recursion 初学者的递归函数?
我正在寻找一些递归函数示例,最好是那些显示复杂性增加的示例。我理解基本的递归函数,但在代码中实现它们时遇到了困难。我以前从未在代码中使用过它们,我知道它并不总是需要它们,但我想尝试一下。是否有一个很好的例子资源,也许还有一些挑战?或者甚至一些简单的数学问题(欧拉项目风格?),我可以使用递归Recursion 初学者的递归函数?,recursion,Recursion,我正在寻找一些递归函数示例,最好是那些显示复杂性增加的示例。我理解基本的递归函数,但在代码中实现它们时遇到了困难。我以前从未在代码中使用过它们,我知道它并不总是需要它们,但我想尝试一下。是否有一个很好的例子资源,也许还有一些挑战?或者甚至一些简单的数学问题(欧拉项目风格?),我可以使用递归 例如,我更喜欢C#,但任何东西都能用。1最简单的是阶乘、斐波那契序列或由递归函数定义的任何数学序列 2然后你可以搬到 任何使用深度优先搜索的算法 例如: 搜索问题,比如 你可能想学习 分治算法,例如合并排序和
例如,我更喜欢C#,但任何东西都能用。1最简单的是阶乘、斐波那契序列或由递归函数定义的任何数学序列 2然后你可以搬到 任何使用深度优先搜索的算法 例如: 搜索问题,比如 你可能想学习 分治算法,例如合并排序和快速排序。它们通常是递归实现的
这些都很经典 我发现斯坦福工程处处项目提供的在线课程是一个很好的资源。如果你看他们的CS106B课程,从第7课到第11课,你应该对递归有很好的基本理解。它们还提供需要解决问题的练习
如果您在实现基本递归函数时遇到问题,我建议您实际上并不理解它们。但这并不丢脸,不是每个人都能轻易地“得到”递归。我建议您尝试以下方法,而不是将您的头撞到简单的算法上:
- 思考并研究递归数据结构(如树、图或列表)的用法。学习在递归是自然方法的情况下使用递归可能比尝试大量应该使用循环的示例更好
- 使用递归是一个基本的、原始的概念的语言。Haskell和其他一些函数式编程语言也可以。通常,用FP解决问题最自然的方法是实现递归;在其他语言中,您通常必须首先解决该语言对递归的奇怪方法。我不知道C#是否有一种奇怪的递归方法