资 源 简 介
递归的缺点:
–递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某种特定情况,递归更为适合的时候。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等
–执行时间长、占用空间多
–主要原因:递归调用时的现场保护与恢复(相对于迭代过程而言)
一个反复执行过程,可否用循环结构实现?
递归调用时,返回点怎么记录?
递归返回时,如何接着以前的断点继续执行?
返回值如何处理:若当前是较深一层的递归调用,如何将返回值返回到上一层递归过程的引用位置上?
系统栈:保护现场、保存返回值、返回地址