首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >摊销分析是否仅适用于数据结构?

摊销分析是否仅适用于数据结构?
EN

Stack Overflow用户
提问于 2021-10-13 18:45:58
回答 2查看 83关注 0票数 0

在我看到的任何地方(在SO和其他来源上),摊销分析通常只适用于数据结构。例如用于dynamic arraysplay tree。然而,我还没有看到纯算法的分期分析的应用。关于算法的摊销分析有意义吗?摊销分析假设了一系列操作,这对于数据结构是正确的,但对于算法则不是。

EN

Stack Overflow用户

回答已采纳

发布于 2021-10-13 18:59:06

只有当存在某种可变状态,允许在一个操作中完成的计算影响另一个操作中的计算性能时,摊销一系列操作的成本才有意义。如果一系列操作的性能可以独立地分析为各个操作的性能总和,其中每个操作都不依赖于执行的其他操作,则不会进行摊销。

因此,从这个意义上说,摊销分析只适用于数据结构,而不适用于纯算法。然而,这假设了一个非常宽泛的“数据结构”的定义,它几乎涵盖了任何可变状态。例如,当协程执行暂停时,coroutine的局部变量是否应该被视为数据结构,这是有争议的。

同样,我们通常不会将装饰有LRU cache的函数视为“是”数据结构,而是说它“使用”缓存的数据结构,并且在分析一系列调用(其中一些命中缓存,另一些未命中)的性能时,我们不会说我们正在分析缓存使用的数据结构,我们会说我们正在分析memoised算法。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69560766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档