递归算法的原理是什么?

qingyihekan 2010-05-11 02:19:30
谁能跟我讲讲递归算法的原理啊?
...全文
17475 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaotangnobody 2011-09-20
  • 打赏
  • 举报
回复
刚才回复的帖子怎么不见了....
fanbingyuan 2011-03-07
  • 打赏
  • 举报
回复
就是自己调用自己
zhengxiaoliu 2011-03-07
  • 打赏
  • 举报
回复
从前有座山,山里有个庙,庙里有个老和尚正在讲故事...(重复ing)
实在太好理解了
PitTroll 2010-11-30
  • 打赏
  • 举报
回复
递归和迭代,一个是从无到有推算,一个是从有到无推算。
Microblue 2010-11-30
  • 打赏
  • 举报
回复
递归的执行原理和堆栈的原理是类似的,堆栈是后进先出,递归是从后面执行回来的~~~~供参考~~~
niesen111 2010-11-30
  • 打赏
  • 举报
回复
函数自己调用自己
BinaryTreeEx 2010-05-12
  • 打赏
  • 举报
回复
再补充一个:
递归分为2种,直接递归和间接递归。
直接递归,比如方法A内部调用方法A自身
间接递归,比如方法A内部调用方法B,方法B内部调用方法C,方法C内部调用方法A
xiangzideai 2010-05-12
  • 打赏
  • 举报
回复
方法循环调用自身
myhope88 2010-05-12
  • 打赏
  • 举报
回复
大家都说了,没什么好说的了,路过
gxingmin 2010-05-12
  • 打赏
  • 举报
回复
递归处理代码简洁外,还有个好处,就是你在循环前,不知道循环的层次是多少时,用递归比较方便,譬如遍历树、遍历磁盘文件等,在循环前,你根本不知道磁盘有多少个文件夹和文件,调用递归无需事先知道这些,只要找到最后文件夹时返回就可以了。

但是递归也有缺点,前面也有同志说了,就是消耗栈资源太多了。

dyks90 2010-05-12
  • 打赏
  • 举报
回复
从前有座山,山里有个庙,庙里有个老和尚正在讲故事...(重复ing)
实在太好理解了
加油馒头 2010-05-12
  • 打赏
  • 举报
回复
一般不太用

递归的好处就是代码简洁,直观
weike021996 2010-05-11
  • 打赏
  • 举报
回复
mark!
ProjectDD 2010-05-11
  • 打赏
  • 举报
回复
递归和循环是等价的

它也没什么特别的原理,就是方法调用 ,方法调用 就是在压栈,只是它特殊中方法自己调用 自己,其实和调用 其它方法完全 一样,递归中值得注意的是它的弹出 条件,要不可能选成死循环.
ztenv 2010-05-11
  • 打赏
  • 举报
回复
函数被调用还未结时再调用函数,则会保存当前状态,入栈,依次类推,当最后一个函数执行完后,倒数第二个函数出栈,再也倒数第一个函数的结果进行计算,依次类推;

并且:函数是被放在程序区的,函数调用实际上就是取得函数在内存中的地址,执行内存中的机器码;
KissXYL 2010-05-11
  • 打赏
  • 举报
回复
有道理。
vrhero 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kissxyl 的回复:]
说的没错。那怎么还需要用递归呢?其实很多时候不用递归也能实现,
[/Quote]
递归的优点是结构简单清晰,某些回溯算法或遍历树算法用非递归方法结构很复杂...这时如果代价不太大用递归算法则可大大减少复杂度和工作量...

凡事不走极端就好了...
KissXYL 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 vrhero 的回复:]
从前有座山,山里有个庙,庙里有个老和尚正在讲故事:从前有座山,山里有个庙,庙里有个老和尚正在讲故事:
从前有座山,山里有个庙,庙里有个老和尚正在讲故事...

这就是递归原理...递归算法得有递归出口,否则就会死循环...递归算法效率较低,占用栈空间较大,容易发生栈溢出...
[/Quote]

说的没错。那怎么还需要用递归呢?其实很多时候不用递归也能实现,
libaozhen1208 2010-05-11
  • 打赏
  • 举报
回复
就是自己调用自己
加载更多回复(8)

110,476

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧