递归
定义:
在函数内部调用函数自身
缺点:
每一次调用函数需要在内存栈中分配空间,用来保存参数,返回地址及临时变量
1.时间消耗:往栈中压入、弹出数据需要时间
2.空间消耗:调用栈溢出;每一次调用在栈内分配空间,但栈的容量是有限的,调用层级太多则会超过栈容量
循环
性能由于递归,但代码没有递归简洁
在函数内部调用函数自身
每一次调用函数需要在内存栈中分配空间,用来保存参数,返回地址及临时变量
1.时间消耗:往栈中压入、弹出数据需要时间
2.空间消耗:调用栈溢出;每一次调用在栈内分配空间,但栈的容量是有限的,调用层级太多则会超过栈容量
性能由于递归,但代码没有递归简洁