[问题] 关于递回的使用时机

楼主: qazkevin (Linus)   2018-01-13 01:21:21
各位大大高手好~
小弟最近在练习写code的时候,
虽然题目被我解出来了,
但通常我会习惯看别人遇到这题会怎么写,
有时看别人会用递回的方式来解答。
我想请问各位大大,
到底什么情况下会让你想到要递回的方式去解?
是单纯经验的累积吗?
因为我觉得要第一时间想到用递回解老实说还满困难的...
作者: steve1012 (steve)   2018-01-13 01:34:00
通常是可以拆成一样的小问题的时候 多刷几题就会了
作者: stupid0319 (征女友)   2018-01-13 01:52:00
递回能不要用就不要用吧,弄不好stack还会爆表
作者: freeunixer (御剑客)   2018-01-13 03:01:00
作者: CoNsTaR ((const *))   2018-01-13 03:52:00
C/C++几乎不用递回,只有作业一定得用而已吧
作者: b0920075 (Void)   2018-01-13 04:15:00
divide and conquer?
作者: liflguy (xxxwino)   2018-01-13 04:28:00
顺便问一下,dfs有递回外的方法吗?
作者: loveflames (咕啾咕啾魔法阵)   2018-01-13 08:07:00
constexpr函数会需要递回
作者: Sidney0503 (Sidney0503)   2018-01-13 08:53:00
棣回和循环等价 而且已经做成compiler了优化开下去就帮你把递回转成循环其实就是上面问学资料结构那一篇的推文有说习惯电脑的想法比较重要递回的思维就是数学上的递回 每次透过迭代算下一轮用循环是从i小往i大走 递回是从i大一路叫i小的执行至于你是真的想练递回想法的话 可以把现有的递回code改写成tail recursion 这种练习也可以试看看或者是直接是玩玩看functional language例如lisp或haskell然后等一下就会有人说c/c++版要推c/c++语言
作者: springman (司布林)   2018-01-13 09:24:00
会用递回通常都只有一个原因,问题本身可以用递回方式定义,因此用递回来解可能比较简单、程式码可能比较短当然,递回程式执行速度照理说是不可能比较快。任何递回程式都可以写成非递回的型式,理论上用堆叠都可以做得到,只是有可能很麻烦。
作者: Ommm5566 (56天團)   2018-01-13 10:12:00
楼上 递回本来就是stack 何来困难?
作者: springman (司布林)   2018-01-13 10:15:00
因为想到递回函数里面再加几个循环,可以写得很复杂,改写成非递回还是可能很麻烦。
作者: popcool (我不懂)   2018-01-13 13:54:00
递回用不好stack不是很容易就爆掉吗
作者: y3k (激流を制するは静水)   2018-01-13 14:22:00
不知道有没有递回特化的程式语言 没有for这样XD
作者: andyjy12 (??)   2018-01-13 17:07:00
处理XML,JSON 这类深度不固定的nest资料或是在写interpreter
作者: loveflames (咕啾咕啾魔法阵)   2018-01-13 17:50:00
C++的TMP算吧
作者: cia1099 (阿兜啊)   2018-01-13 19:04:00
把recursive想成while循环就很容易实现了吧
作者: springman (司布林)   2018-01-13 19:27:00
functional language 强调的是没有 assignment几乎都靠递回。
楼主: qazkevin (Linus)   2018-01-13 23:52:00
感谢各位大大的回复~小弟会继续努力练功的!
作者: F04E (Fujitsu)   2018-01-15 06:55:00
探访树的节点的时候?
作者: longlongint (华哥尔)   2018-01-15 23:44:00
程式挂掉造成的代价不大的时候
作者: cphe (魔鬼藏在垃圾筒里)   2018-01-16 09:56:00
写作业比较常用到…还有刷leetcode~ 其实用在tree的操作蛮方便,会用的话写起来code很简洁~ 但不确定性太大了,怕会爆当大问题可以拆成同样规则的小size去做时就可以用
作者: TWkobe (中华柯比)   2018-01-16 18:55:00
Dfs非递回可用stack 沽狗一下有喔 不过递回与stack本身就一体两面
作者: rareone (拍玄)   2018-01-16 20:25:00
可以写的很functional

Links booklink

Contact Us: admin [ a t ] ucptt.com