递归的学习方法

递归的学习方法

请教下老师。我刚刚学习递归, 感觉对于如何处理结束条件,还有如何按次序写出正确的递归有些疑惑。 我想知道,比较有效率的学习方法,是不是先要按您“微观解读”中讲解的方法,先要理解了递归背后的逻辑,然后慢慢上升到直觉?谢谢!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2021-08-18 04:10:20

微观解读的目的是能够理解递归的运行机制,也就是递归函数的过程到底是怎么执行的。但是,了解递归的宏观语义,是面对一个问题,设计出递归算法的关键。一旦你掌握了这一点,对于大量的问题来说,递归的写法是远远比非递归写法简单的。


你提出这个问题,我相信你已经理解了递归的微观解读。我建议你,再去仔细理解一下我之前讲的,递归的宏观语义到底是什么意思。这两者必须结合起来。一旦结合起来,递归的微观解读,很多时候的意义是帮助你能够调试你的递归函数,我们应该是从宏观上设计递归函数,即这个函数到底要依靠哪些参数,解决什么问题,在组织解决这个问题的逻辑过程中,怎样运用自己这个函数。但是设计出的函数一旦和我们想要的运行结果不一样的时候,依靠微观运行的机制去观察,到底我们哪里的思考有问题。


另外,你看到这里,对递归的接触还是太少了,不过链表中简单地递归和这里的一个归并排序而已。这个课程后面还有大量的递归函数的书写,先不要想“如何写出递归函数”这么大的问题,先踏踏实实把所有这些经典算法和数据结构中的递归过程搞懂,自己能够驾驭,再讨论算法设计的问题。


看完这个课程所有和树相关的话题,你可以去力扣上把“树”标签的问题都过一遍,印象中,这一点课程中会提及的。


继续加油!:)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师