娄底蚂蚁搬家公司电话:急~快要考试了,问几个递归的简答题~

来源:百度文库 编辑:高校问答 时间:2024/05/05 22:52:37
请问递归程序的优、缺点是什么?递归程序转换成非递归实现一般应借助于什么数据结构来完成?

递归算法的优点如下:
编程复杂度低
不用手动控制暂存空间,一切由系统栈完成

递归算法的缺点如下:
时间复杂度高
空间消耗大
不容易找到递归公式

递归程序转换成非递归实现一般应借助于栈来实现
递归程序其实也要栈,只不过是系统栈。

推荐一个经典递归问题:Hanoi汉诺塔问题,它体现了以上所有的内容。

设计简单
运行慢

归是一种重要的编程技术。该方法用于让一个函数从其内部调用其自身。一个示例就是计算阶乘。0 的阶乘被特别地定义为 1。 更大数的阶乘是通过计算 1 * 2 * ...来求得的,每次增加 1,直至达到要计算其阶乘的那个数。

递归程序的优点是程序简单,仅仅几行代码就可以完成很复杂的操作.
缺点:由于递归是用堆栈实现,所以递归程序在运行时效率较低
递归程序转换为非递归实现需要借助“栈”这种数据结构来实现