首页 > 代码库 > 递归 循环 比较

递归 循环 比较

算法分析: 

循环算法和递归算法 无论时间效率还是空间效率都是前者高。递归算法在运行时,函数调用保存现场、开辟运行资源、返回回收资源都需要耗时。递归算法的参数表面是一个变量,实际上市一个栈


结论1:

递归确实是一些复杂的问题处理起来简单明了,但是,就效率而言,递归算法的实现往往比循环算法耗费更多的时间和存储空间,也限制了递归的深度。所以,在具体的实现中,应尽可能把递归算法转换为等价的循环算法,以提高算法的时空效率。

相应问题,如给一个整数,从低位到高位输出各位的数字。


结论2:

由于递归算法的实现包括递归和回溯两步,当问题需要“后进先出”的操作时,还是用递归更有效。如数据结构中树的遍历,图的深度优先搜索等。

相应问题,如给一个整数,从位到低位输出各位的数字。