社区
C++ 语言
帖子详情
递归的最大深度,是多少?
speeches
2006-10-12 10:33:27
如果递归太多,岂不要重新做算法?
做了个测试,unsigned long ...
...全文
2712
32
打赏
收藏
递归的最大深度,是多少?
如果递归太多,岂不要重新做算法? 做了个测试,unsigned long ...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
Algs4-2.3.13在最佳、平均和最坏情况下,快速排序的
递归
深度
分别是多少?
2.3.13在最佳、平均和最坏情况下,快速排序的
递归
深度
分别是多少?这决定了系统为了追踪
递归
调用所需的栈的大小。在最坏情况下保证
递归
深度
为数组大小的对数级的方法请见练习2.3.20。答:令排序数组长度为n1)最佳情况下,每次切分都能使左右子数组长度相同,
递归
深度
为lgN。2)平均情况下,
递归
深度
为lnn。令D(n)为长度为N数组平均情况下的
递归
深度
。令p为切分元素所在的数组索引,那么3)最坏情况下...
11. python
递归
的
最大
层数?
递归
函数停止的条件?
https://blog.csdn.net/Damon_duanlei/article/details/86098806 可以通过 sys.setrecursionlimit() 进行设置,但是一般默认不会超过3925-3929这个范围。 import sys sys.setrecursionlimit(3000) # 设置
最大
递归
深度
为3000 https://blog.csdn.net...
【
递归
深度
超出
最大
值】:如何解决Python中的
递归
错误?
造成
递归
错误的原因是每次函数调用都会在内存栈中分配一定的空间存储函数的局部变量、返回地址等信息。如果
递归
的层数太多,会导致栈空间不足,从而抛出
递归
深度
超出
最大
值的错误。在Python编程中,
递归
算法是一种常见的算法。然而,在进行
递归
过程中,可能会遇到
递归
深度
超出
最大
值的问题,导致程序崩溃。总之,在编写
递归
算法时要注意控制
递归
深度
,避免出现
递归
深度
超出
最大
值的错误。另一种方法是将
递归
算法转换为迭代算法,避免
递归
深度
过大。除此之外,还可以考虑使用尾
递归
优化等其他技巧来优化
递归
算法。
递归
最大
深度
及
递归
过程
递归
的本质 在函数内部调用函数本身 import sys #设置
最大
深度
sys.setrecursionlimit(100000000) count = 0 def func(): global count count += 1 print(count) func() print(456) func() 这里我们设置的是100000000 但是实际只有3219 这是由电脑决定的,每台电脑各不相同 def func(count): count += 1
[
递归
错误:
递归
深度
超过
最大
限制]——解决Python
递归
陷阱
但是,
递归
函数的实现很容易导致
递归
深度
过大而导致[
递归
错误:
递归
深度
超过
最大
限制]。然而,
递归
函数也有其缺点:
递归
层数过多时容易出现[
递归
错误:
递归
深度
超过
最大
限制],导致程序崩溃。然而,当n取值较大时,程序就会出现[
递归
错误:
递归
深度
超过
最大
限制]。总之,Python中的
递归
函数虽然便于编写和理解,但在应用时需要注意
递归
深度
限制问题,并尽可能使用循环实现代替
递归
实现。上述代码中,使用循环代替
递归
,可以有效避免
递归
深度
过大而导致的错误。为了避免这种情况,可以增加
递归
深度
限制,但这并不是解决问题的根本方法。
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章