2 feifeifeifeifie feifeifeifeifie 于 2016.01.18 18:06 提问

C++课后练习2:试分析在C++中使用递归函数的有点和缺点?

C++课后练习2:试分析在C++中使用递归函数的有点和缺点?

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.18 18:10

优点:代码简洁,容易理解,对于回溯等算法,不需要额外的存储,也不担心内存分配释放
缺点:效率低,容易堆栈溢出,如果递归层次深的话。

enpterexpress
enpterexpress   Rxr 2016.01.18 21:42

优点:结构清晰,可读性强
缺点:运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多

91program
91program   Ds   Rxr 2016.01.18 19:37

1优点:结构清晰,可读性强(但不易理解),而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。 递归写起来方便,结构层次清晰;
2缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。递归太深容易造成堆栈的溢出。缺点是太占资源,因为它要保护现场;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Freemarker的有点与缺点分析
Freemarker的有点与缺点分析 FreeMarker不支持Java脚本代码。 FreeMarker的原理就是:模板+数据模型=输出,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。 一、Freemarker的优点 1.优点一,可以彻底的分离表现层和业务逻辑。 如果使用JSP 开发
递归函数的几个例子
/*1.一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。 这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过 每个村子卖出多少只鸭子?*/#include int q(int duck,int village)//定义递归函数,参数为鸭子数和村子数 { if(village==0) //未经过村子时的鸭子为总数 printf("总共有%d个鸭子。\n
递归函数的复杂度分析
一.前言   递归函数的主要思想是将一个问题分拆为几个子问题(问题大小减少),分别解决这些子问题,再将得到的结果组合起来。所以,递归函数的复杂度包括分拆问题的代价,组合结果的代价(统称称为非递归代价)和解决子问题的代价(递归复杂度)。   递归函数的复杂度分析主要是通过递归方程和递归树进行分析的。首先,将一个递归函数的复杂度表示成递归方程的形式,然后通过数学计算或递归树分析,得到递归函数的近似复杂
指针的优势和缺点
指针是C语言的核心概念,也是C语言的特色和精华所在,更是初学者学习的难点所在。掌握了指针,才谈得上是真正掌握了C语言。 用C语言却不用指针,就像找个女人开房却聊天一晚上 使用指针可以带来如下的好处: (1)可以提高程序的编译效率和执行速度,使程序更加简洁。 (2)通过指针被调用函数可以向调用函数处返回除正常的返回值之外的其他数据,从而实现两者间的双向通信。 (3)利用
#define宏定义的优点和缺点
1、宏定义的优点: (1)   方便程序的修改       使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将该常量改变时,不用对整个程序进行修改,只修改宏定义的字符串即可,而且当常量比较长时,我们可以用较短的有意义的标识符来写程序,这样更方便一些。 (2) 提高程序的运行效率       使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。正如C语言中所讲,
《the c programming language》第2单元课后练习
《the c programming language》第2单元课后练习《the c programming language》第2单元课后练习《the c programming language》第2单元课后练习《the c programming language》第2单元课后练习《the c programming language》第2单元课后练习《the c programming language》第2单元课后练习
编程:如何分析递归函数会占用多少堆栈空间,即空间复杂度
下面好文看了后可以想: ——》
递归函数求n的阶乘
运用递归函数求n阶乘,与其他方法比 代码简单易懂,
分析比较B/S和二层C/S和三层C/S指出他们的不同之处和优缺点
这是今天的作业,哈哈 分析比较B/S和二层C/S和三层C/S指出他们的不同之处和优缺点。 首先说一下B/S和C/S之间的不同: (1)硬件环境不同: C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。B/S 建立在广域网之上的, 不必是专门的网络硬件环境,有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。
递归函数 和 全局变量
递归函数 和 全局变量