递归的学习方法
请教下老师。我刚刚学习递归, 感觉对于如何处理结束条件,还有如何按次序写出正确的递归有些疑惑。 我想知道,比较有效率的学习方法,是不是先要按您“微观解读”中讲解的方法,先要理解了递归背后的逻辑,然后慢慢上升到直觉?谢谢!
29
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2021-08-18 04:10:20
微观解读的目的是能够理解递归的运行机制,也就是递归函数的过程到底是怎么执行的。但是,了解递归的宏观语义,是面对一个问题,设计出递归算法的关键。一旦你掌握了这一点,对于大量的问题来说,递归的写法是远远比非递归写法简单的。
你提出这个问题,我相信你已经理解了递归的微观解读。我建议你,再去仔细理解一下我之前讲的,递归的宏观语义到底是什么意思。这两者必须结合起来。一旦结合起来,递归的微观解读,很多时候的意义是帮助你能够调试你的递归函数,我们应该是从宏观上设计递归函数,即这个函数到底要依靠哪些参数,解决什么问题,在组织解决这个问题的逻辑过程中,怎样运用自己这个函数。但是设计出的函数一旦和我们想要的运行结果不一样的时候,依靠微观运行的机制去观察,到底我们哪里的思考有问题。
另外,你看到这里,对递归的接触还是太少了,不过链表中简单地递归和这里的一个归并排序而已。这个课程后面还有大量的递归函数的书写,先不要想“如何写出递归函数”这么大的问题,先踏踏实实把所有这些经典算法和数据结构中的递归过程搞懂,自己能够驾驭,再讨论算法设计的问题。
看完这个课程所有和树相关的话题,你可以去力扣上把“树”标签的问题都过一遍,印象中,这一点课程中会提及的。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星