面试之路(23)-递归和循环优缺点详解
来源:互联网 发布:姜文 王朔 知乎 编辑:程序博客网 时间:2024/05/22 07:09
使用场景
需要重复的多次的计算相同的问题,会用到递归和循环
定义
递归
递归是内部调用这个函数本身。
循环
通过设置初始值和终止条件,在一个范围内重复运算
优缺点分析
递归
虽然有代码简洁的优点,但是时间和空间消耗比较大。每一次函数调用都需要在内存栈中分配空间以保存参数,返回地址以及临时变量,而且往栈里面压入数据和弹出都需要时间。
另外递归会有重复的计算。递归本质是把一个问题分解为多个问题,如果这多个问题存在重复计算,有时候会随着n成指数增长。斐波那契的递归就是一个例子。
递归还有栈溢出的问题,每个进程的栈容量是有限的。
循环
代码可读性不如递归
但是效率更高
0 0
- 面试之路(23)-递归和循环优缺点详解
- 递归和循环优缺点详解
- 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现
- 循环和递归的优缺点比较
- 程序员面试之循环与递归(四)
- 递归与循环的优缺点
- 递归与循环的优缺点
- 递归与循环的优缺点
- 递归与循环的优缺点
- 面试之路(29)-合并两个排序的链表(递归和非递归)
- 一步一步写算法(之循环和递归)
- 一步一步写算法(之循环和递归)
- 一步一步写算法(之循环和递归)
- 一步一步写算法(之循环和递归)
- 一步一步写算法(之循环和递归)
- 一步一步写算法(之循环和递归)
- 剑指offer-面试9:斐波那契数列(递归和循环)
- 循环和递归(后记)
- Win10系统开启Linux Bash命令行
- KMP_java实现
- Tricks(四十六)—— 四个数中最小值的实现
- Leetcode #62. Unique Paths 路径搜寻 解题报告
- Android解惑 - 为什么要用Fragment.setArguments(Bundle bundle)来传递参数
- 面试之路(23)-递归和循环优缺点详解
- Hibernate多对多中间表有多个字段字段的注解配置方式(二)
- 简易计算器(逆波兰算法)
- SDAU dp专题 1003
- Hibernate多对多中间表有多个字段字段的注解配置方式(三)
- Android进程
- KMP模板
- Android ActionBar的基本用法
- 浅谈:自步学习(Self-Paced Learning)