循环与递归的区别

循环与递归的区别。
两者的相同点:
1.两者都可以完成循环遍历的功能。
2.两者都需要设置结束循环的条件。
3.两者每次循环或递归时,执行的程序体都是一样的。
4.两者在条件判断有误时,都可能会发生无法终止的情况(死循环和无限递归)。

两者的不同点:

  1. 递归时,每递归一层,就会在内存生成一个调用栈,来保存本次递归的信息。所以如果递归深度过深,有栈溢出的问题。循环则不会有这样的问题。
  2. 循环是一次正向的过程,递归需要回溯。
  3. 写法上的区别:递归是不断的调用自身的函数。循环则不需要。
  4. 一般来说递归的写法更简洁。

所有递归都可以改写为循环。
所有的循环都可以改写为递归?应该是不可以,解决子问题的循环是可以改写为递归的。有待验证。https://www.jianshu.com/p/3e3a9cdd4a6b

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容