看了一下递归算法的介绍。感觉都可以用循环来实现。而且递归因为出栈入栈还要占用大量内存空间。可以自我调用的次数也有限。所以大部分递归算法 解决的问题为为什么不用循环来解决呢?难道在相同运算次数的前提下,递归算法比循环运算速度快?
另外有一种感觉。就是 C 语言也不想想象中那么“灵活”。比如当你在 C 语言使用递归算法。编译以后程序还是会“自动对内存进行出栈入栈”操作。你只要用了递归算法,内存就会这样被使用。你没得选。当然如果你编写的每一段代码如何使用内存都要自己掌控,那就成了汇编语言了。但是感觉递归算法的内存调用还是被 C 语言编译器“写死了”,不知道我这种看法对不对?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/871482
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.