腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
4
回答
尾
递归
函数
总是
要
避免
的
吗
?
、
、
如果我没记错的话,
尾
递归
函数
总是
有一个简单的非
递归
等价
函数
。由于
递归
涉及不必要的
函数
调用开销,因此最好使用非
递归
方式。 这个假设
总是
正确的
吗
?还有没有其他支持/反对
尾
递归
的论点?
浏览 2
提问于2010-07-20
得票数 4
回答已采纳
3
回答
在
函数
式语言中,编译器如何将非
尾
递归
转换成循环以
避免
堆栈溢出(如果有的话)?
、
、
、
、
我最近学习了
函数
语言,以及有多少不包括for循环。虽然我个人并不认为
递归
比for循环更困难(而且通常更容易推理),但我意识到许多
递归
示例不是
尾
递归
,因此不能使用简单的
尾
递归
优化来
避免
堆栈溢出。,所有迭代循环都可以转换为
递归
,而这些迭代循环可以转换为
尾
递归
,所以当上的答案表明,如果您想
避免
堆栈溢出,就必须自己显式地管理
递归
到尾
递归
的转换,这让我感到
浏览 4
提问于2017-05-04
得票数 3
回答已采纳
1
回答
不进行尾部调用优化的
尾
递归
、
、
假设我们有两个版本的
递归
函数
,其中一个是
尾
递归
函数
。如果所使用的语言没有尾部调用优化,那么使用
函数
尾
递归
有什么好处
吗
?据我所知,在没有优化的情况下,
函数
的每个版本(尾部和非尾部)将使用相同数量的堆栈框架(在大多数情况下)。我知道在某些情况下,例如Fibonacci
函数
,即使没有尾部调用优化,使用尾部调用也会更有效率,因为它
避免
了双重调用。但是,如果两个版本的
函数
都
浏览 14
提问于2021-03-01
得票数 0
2
回答
迭代(基于堆栈)快速排序比
递归
快
吗
?
、
、
在不同的地方,我看到了使用堆栈实现快速排序比使用
递归
更快的说法。这是真的
吗
?我知道编译器通常擅长将
递归
转换为迭代,但是链接到页面上的注释要求它过于复杂,无法进行优化。在辅助堆栈的帮助下,可以轻松地将上述
函数
转换为迭代版本。 使用显
浏览 2
提问于2014-07-15
得票数 1
2
回答
Scala:为什么在Scala中
递归
比使用循环更好?(仅仅是因为突变?)(尾部回收器与蓄能器)
、
但是,在Scala中,
递归
是否仅仅因为可变性而被认为是遍历循环的呢?简而言之,我有两个问题: ,因为
尾
递归
不能用于解决所有循环问题(或者可以
吗
?),基于
尾
浏览 2
提问于2021-11-26
得票数 0
回答已采纳
5
回答
是否存在不能使用
尾
递归
编写的问题?
、
、
尾
递归
是
函数
式语言中一种重要的性能优化策略,因为它允许
递归
调用消耗常量堆栈(而不是O(n))。 有没有什么问题根本不能用
尾
递归
风格来编写,或者
总是
可以把一个简单的
递归
函数
转换成一个
尾
递归
函数
?如果是这样的话,有一天
函数
式编译器和解释器是否足够智能,可以自动执行转换?
浏览 0
提问于2009-12-11
得票数 53
回答已采纳
1
回答
有没有一个使用堆栈帧是不可
避免
的(不能完全
尾
递归
)的
递归
函数
/算法?
、
、
我正在尝试想出一些
递归
算法/
函数
的例子,这些
递归
算法/
函数
不能以
避免
使用大量堆栈内存的方式重写(例如,不能完全
尾
递归
,也不能使用不使用堆栈的循环重写)。这样的
函数
存在吗?我认为快速排序可能是一个候选,但不确定它是否可以重写为使用单个
尾
递归
函数
调用。
浏览 2
提问于2013-09-19
得票数 0
1
回答
一般
递归
到尾
递归
、
、
从理论上讲,把每一种一般
递归
转化为
尾
递归
是可能的
吗
?例如,从λ-微积分的角度来看,它们是否等价?这是我和一个熟人之间的争论。 我的观点是,这并不是每次都有可能。例如,如果有一个
函数
递归
地调用自己两次或三次,那么就不能将所有
递归
调用都转换为
尾
调用,对
吗
?还是
总是
有一种方法可以将
递归
调用减少到一个
递归
调用?
浏览 2
提问于2014-07-16
得票数 2
1
回答
一般
递归
到尾
递归
、
、
从理论上讲,把每一种一般
递归
转化为
尾
递归
是可能的
吗
?例如,从λ-微积分的角度来看,它们是否等价?这是我和一个熟人之间的争论。 我的观点是,这并不是每次都有可能。例如,如果有一个
函数
递归
地调用自己两次或三次,那么就不能将所有
递归
调用都转换为
尾
调用,对
吗
?还是
总是
有一种方法可以将
递归
调用减少到一个
递归
调用?
浏览 0
提问于2014-07-17
得票数 2
1
回答
为什么C同时保留goto和while,包括
尾
递归
、
、
、
尾
递归
执行与goto相同的效果。或者说,在lang C中,while和goto在Scheme中替换了
尾
递归
的角色。是什么让设计者决定在C中同时保留goto和What实现?如果goto和they
要
弥补C不能用
递归
方式实现的错误,那么它们是否处于相同的特殊结构中?--以
避免
正常的
递归
。
浏览 1
提问于2013-11-10
得票数 1
回答已采纳
1
回答
Scala中的
尾
递推因子
函数
、
、
我认为下面的阶乘
函数
是
尾
递归
函数
,当我测试它时,可以工作到10,在20 (负输出)时变得很奇怪,当我插入100时,答案是0:但是,当我将@tailrec放在它上面时,我会得到以下错误:我不明白为什么这个
函数
不是
尾
递归
函数
堆栈
递归
阶乘<em
浏览 6
提问于2020-10-10
得票数 1
回答已采纳
1
回答
我是否应该在java中使用
尾
递归
,即使它没有优化
尾
递归
。
、
、
在在线阅读之后,我发现java并没有优化
尾
递归
。那么,如果头和
尾
递归
会产生同样的结果,那么使用它有什么意义
吗
? 此外,are循环的性能
总是
比
递归
(
尾
和头)要好;因为有时不用考虑迭代就更容易使用
递归
。如果我错了,请纠正我,因为我刚刚开始
递归
。
浏览 9
提问于2021-07-26
得票数 2
回答已采纳
1
回答
将Scala中的
尾
递归
合并
函数
转换为基于HOF的合并
函数
、
、
这是Scala中典型的
尾
递归
合并
函数
(这将用作示例,但实际上我正在寻找转换这类
函数
的一般答案): } merge(A, B, Nil)我想知道,通过使用Scala集合中的标准HOFs,是否可以
避免
实现
递归
函数
似乎我
总是
必须从(A zip B)这样的东
浏览 0
提问于2018-03-13
得票数 0
5
回答
C++中的
尾
递归
、
、
、
谁能用C++给我演示一个简单的
尾
递归
函数
?除了
尾
递归
之外,还有其他类型的
递归
吗
?
浏览 4
提问于2010-04-23
得票数 67
回答已采纳
1
回答
嵌套
递归
调用--这是
尾
递归
吗
?
、
、
我认为我理解
尾
递归
函数
的教科书定义:
函数
调用后不执行任何计算的
函数
。因此,
尾
递归
函数
的内存效率将更高,因为每次调用只需要一个记录,而不需要每个记录(就像正常
递归
中的那样)。if(x > 100): else:我最初想出的答案是,根据定义,它不是
尾
递归
(因为外部调用是在计算内
浏览 4
提问于2020-01-16
得票数 0
回答已采纳
4
回答
在JVM中运行Scala时使用
递归
、
、
、
、
在这个站点和web的其他地方搜索,JVM不支持
尾
调用优化。因此,这是否意味着如果要在JVM上运行,就不应该编写尾部
递归
Scala代码,例如可以在非常大的输入列表上运行的以下代码?list.head}原则上,
尾
调用
总是
可以重用调用
函数
的堆栈帧.然而,一些运行时环境(如Java )缺乏使
浏览 10
提问于2011-04-17
得票数 11
1
回答
这个程序是尾部
递归
的
吗
?
、
我和我的朋友一直在争论我们必须为作业分析的算法是否是
尾
递归
的,但他坚持认为是。x) x--; { } { }我告诉他这不是
尾
递归
,因为SomeAlgo(x)不是
要
执行的最后一条语句。如果我们有一个基例,那么基例中的代码将是第一个被执行的东西,而对它本身的调用(返回
要
返回的值)将是最后一个。 如果它不是
尾
浏览 0
提问于2013-05-19
得票数 1
1
回答
递归
循环式
函数
的简单
尾
叫优化
我读过这些
递归
函数
可以用不同的方式编写,以
避免
调用堆栈中的这个问题(与“
尾
调用优化”有关.),但我不太清楚问题的所在。编辑:还是这已经优化了
尾
叫?
浏览 1
提问于2017-10-21
得票数 1
回答已采纳
1
回答
如何将
递归
转化为尾部
递归
、
、
是否
总是
可以将
递归
转换为
尾
递归
? 我很难将下面的Python
函数
转换为
尾
递归
函数
。
浏览 1
提问于2013-04-19
得票数 1
2
回答
为什么
尾
递归
是
递归
的坏用法?
、
、
、
在Mark的书“C中的数据结构和算法分析”中,为什么他说
尾
递归
是
递归
的糟糕用法,最好不要在第三章中使用它?但我看到很多人说它在网上很有用。
浏览 0
提问于2013-09-10
得票数 4
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
《算法图解》读书笔记 Chapter 3
从Java到Kotlin(五)
递归算法在 C 语言中有什么限制?
每天学习一点儿算法-递归
四川千支易拼多多靠谱吗?开网店要避免什么?
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券