递归程序是指在计算机科学中是指一种通过重帆漏复将问题分解为同类的子问题而解决问题的程序。递归式方法可以被用于解决很多的计算机科学问题,因态肆烂此它是计算机科学中十分重要的一个概念。满足使用递归的条件:
子问题为同类事物,且更简单
必须有个出口
优点:
符合思维习惯,容易理解
缺点:
效率较低
递归层次太深,耗内存且容易栈溢出一定要使用的话,雹滚最好使用缓存避免相同的计算,限制递归调用的次数
递归好处:代码更简洁清晰,可读性更好递归可读性好这一樱睁点,对于初学者可能会反对。实际上递归的代码更清晰,但是从学习的角度要理解递归真正发生的什么,是如何调用的,调用层次和路线,调用堆栈中保存了什么,可能是不容易。但脊则岁是不可否认递归的代码更简洁。一般来说,一个人可能很容易的写出前中后序的二叉树遍历的递归算法,要写出相应的非递归算法就比较考验水平了,恐怕至少一半的人搞不定。所以说递归代码更简洁明了。
递归坏处:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。
个盯激人觉得:非必要时不递归
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)