黑马程序员技术交流社区
标题:
嵌套和递归的关系
[打印本页]
作者:
聂玉林
时间:
2012-6-20 13:44
标题:
嵌套和递归的关系
嵌套和递归有什么联系和区别??求解释
作者:
李玮
时间:
2012-6-20 14:04
时间复杂度 两个相差不多 实在要比较的话 一个是操作堆栈的时间(递归),一个是调用变量的时间(循环嵌套)
空间复杂度有区别
循环嵌套占的是程序空间 程序空间复杂度高
递归占得是堆栈空间 堆栈的空间复杂度
在逻辑上而言 递归比循环嵌套更难理解
但是递归可以写成子函数 大大节约我们的时间和程序空间
两种结合 使用效果 你懂得!
作者:
许庭洲
时间:
2012-6-20 14:18
嵌套是在代码里继续往下执行相应模块的代码,而递归是在条件为true时继续执行同一段代码,可以这样说,嵌套和递归都具有执行相似模块的功能,他们的关系是一种兄弟关系。
作者:
张恒维
时间:
2012-6-20 15:18
1楼抽象、2楼误解。(个人看法{:soso_e100:})。
if()
{
if(){}
}
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++){}
}
复制代码
嵌套我们一般的说法是语法嵌套,如上面代码。再看递归:
public int GetSum(int num)
{
if(num<=1){return num;}
return num * GetSum(num-1);
}
复制代码
嵌套的代码看似和递归相像,但执行的效果却是不同。嵌套的执行虽然也是由外至内,但外层和内层没有关系,而且最终执行的结果在返回时也没有层次,也就是说嵌套得再深最后也是直接返回。而递归则不然。递归是反复的对自身的调用,层次逐步加深且在返回时也是逐步返回出来。 建议楼主拿去调试并监听变量的变化就明白了。{:soso_e128:}
作者:
黑马龙超
时间:
2012-6-20 15:21
递归的话必然涉及嵌套,这种嵌套,是通过系统栈的入栈和出栈实现的,每一个过程都会经过入栈保存,最后回归时出栈,跟普通函数调用没有实质的区别
只是递归是把一个大问题,有限的归结为小问题的过程;
嵌套的话,可以灵活的多,并且如果不是过多的函数嵌套的话,效率应该高一些。尾递归一般可以化成循环嵌套的形式。
作者:
刘逍遥
时间:
2012-6-22 15:33
本帖最后由 刘逍遥 于 2012-6-22 15:35 编辑
嵌套是语法上逻辑的一种方式,
递归是自己调用自己的一种形式,当然也可以叫做嵌套的一种
作者:
鲍云龙
时间:
2012-6-23 08:29
嵌套:拿for来说就是一个for里面有嵌套了1或多个个完整的循环
递归:拿一个方法来说 就是在这个方法的方法体里面又调用了自己
递归的特点:间接或直接的调用自身,要有结束的条件
递归相对于循环来说他的效率比较低!应用场合不同。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2