递归的最大深度,是多少?

speeches 2006-10-12 10:33:27

  如果递归太多,岂不要重新做算法?

   
  做了个测试,unsigned long ...

   
...全文
2712 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyun5d 2006-10-13
  • 打赏
  • 举报
回复
递归算法,只取决于堆栈大小。如果真的要递归几千次,可能修改算法实现更好。
递归的算法是可被裂解的。转化为循环,虽然代码多一点,但不会因为堆栈而退出。
tlz1016 2006-10-13
  • 打赏
  • 举报
回复
mark
060 2006-10-13
  • 打赏
  • 举报
回复
在 VC2003里,
void TestStackMain(int i)
{
i= i+ 1;
cout<< i << endl;
TestStackMain(i);
}

输出了 4773后 程序停止。


一般情况下, 递归不会耗尽系统内存, 只要栈满, 就出错退出
Atwind 2006-10-13
  • 打赏
  • 举报
回复
谁找你谈话??
argenCHN 2006-10-13
  • 打赏
  • 举报
回复
应该无限制吧,只要内存够大
thisisll 2006-10-13
  • 打赏
  • 举报
回复
所有递归都可以转换成循环
要是不确定递归深度可以转成循环
还节省资源
sankt 2006-10-13
  • 打赏
  • 举报
回复
取决于栈的大小
analysefirst 2006-10-13
  • 打赏
  • 举报
回复
能不用递归就不用递归啦.
占系统资源(CPU,内存).
你想写那么层的递归呀?
会有人找你谈话的!!!
哈哈哈!!!
gernal_dn 2006-10-13
  • 打赏
  • 举报
回复
深层递规一定要避免!一是不安全,二是调用代价高,三是cache对栈的效率低,四,这是最重要的--递规算法一定可以转为循环!
naive_lin 2006-10-13
  • 打赏
  • 举报
回复
也可能是2000多万次,我不记得了
naive_lin 2006-10-13
  • 打赏
  • 举报
回复
大概2万多次就会出现内存访问非法, 在MSVC中中设计算法遇到过的;
如果楼主要更深的深度, 要自己设计参数堆栈,是用返回式调用遍历堆栈,实现更深的递归.
genius_hb 2006-10-13
  • 打赏
  • 举报
回复
栈益处吧
fflush 2006-10-12
  • 打赏
  • 举报
回复
什么问题的算法,lz说来听听
Jokar 2006-10-12
  • 打赏
  • 举报
回复
上网搜一下~
ps: 可以考虑换个算法了~
todototry 2006-10-12
  • 打赏
  • 举报
回复
栈耗尽
个人意见,高手多多指教
taodm 2006-10-12
  • 打赏
  • 举报
回复
呵呵,只能查G++手册了。
speeches 2006-10-12
  • 打赏
  • 举报
回复

  不幸的是已经耗尽了,而且退出了.
  我用的是g++ ,没找到
Jokar 2006-10-12
  • 打赏
  • 举报
回复
在那里设置?
--------------------
ms可以通过编译选项来设置的吧~
goodbee 2006-10-12
  • 打赏
  • 举报
回复
在PC上面,一般很难耗尽的吧~~
speeches 2006-10-12
  • 打赏
  • 举报
回复
在那里设置?
加载更多回复(12)

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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