用户:
5KQA查看:10 回复:3 评论:10 创建时间:2020-05-13T18:59:06
最近好像觉得没啥好讲的算法入门,so我就讲一讲比较简单的递归知识(递归还有好多东西)~
递归分为尾递归、非尾递归,今天我们就来讲一下尾递归~
首先我们先举个最最最最简单de栗子:
左边一段脚本用的是循环,而右边一段脚本用的就是递归!
重复执行,左边←_←用的是循环;自制积木,右边→_→用的是递归!
什么是递归?
递归,用简单、喵、通俗、滑稽(嘻嘻)的话语来说,递归就是在一个函数定义的时候继续调用自己。
在上面的例子中:
知道递归是什么意思了么?
知道的继续……
其实递归往往会有一个递归终止条件。递归终止条件一词从字面上理解,就是“一旦发生,递归将停止”。如果按照上面的例子说,一旦发生递归终止条件(递归终止条件值为true),就不切换造型。
ヾ(❀^ω^)ノ゙
可能有人会问,既然递归和循环执行效果相同,为啥需要用递归呢?这是因为递归会清晰脚本思路。就像之前强调过N次的职责一样。再说一些复杂程序必定需要递归,例如如果你懂算法你还会接触到“分治”,这一定需要递归。
就是这么简单(跟你说递归还有好多东西)
下一节一定会讲非尾递归~
这个,能用while的尽量别用递归……
递归占用空间大,时间慢,效率低下……
不是DFS或堆的题千万别用递归(忠言逆耳利于行)
例如,我上次作喵不用while用DFS,保灵QWQ
点赞0
评论