递归在函数体中调用自己。如果不受控制,它将继续调用自身,直到堆栈溢出。循环是区域内一段代码的重复执行,如果不加以控制,就会形成死循环。所以无论是递归还是循环,都必须设置一定的条件来结束递归或循环。在实际问题中,有一些问题是递归的。用递归程序来解决这样的问题会感觉更自然,程序也会更简单。然而,递归经常调用函数,并且开销(内存、时间)很大。有些问题不适合使用。循环不需要自己调用,甚至不能调用函数,效率很高。但是,递归应该变成非递归返回,你可能要动脑筋了
我们先谈谈个人的理解吧-是的,所有的循环函数都可以通过递归来实现。至少,我现在这么认为。
当我们学习时,我们更多地接触到一种斐波那契序列。这里我们以1到100的总和为例。第一种是循环实现,第二种是递归实现。
图1求和的方法
图2递归的方法
从上面的比较中我们可以看出两者都能达到相应的目的,但是递归函数给人一种更加简洁的感觉。是的,递归函数的优点是逻辑简单明了。由于逻辑清楚,我们很难一下子理解它。
原文标题:递归循环比赛 循环和递归哪个性能好,如若转载,请注明出处:https://www.saibowen.com/wenda/22414.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。