cost 62 ms
显示摊销分析和平均案例分析可能给出渐近不同结果的示例 - An example to show that amortized analysis and average-case analysis may give asymptotically different results

我读过很多关于摊销分析的解释以及它与平均案例分析的区别。 然而,我还没有找到一个单一的解释来说明,对于一个特定的例子,对于这两种分析都是明智的,两者会如何给出渐近不同的结果。 摊销运行时间分析最广泛的示例表明,将元素附加到动态数组需要 O(1) 摊销时间(如果数组的长度是 2 的精确幂,则操作的运行 ...

是否有 function 用于压缩具有许多冗余项的表达式,以便不必重新计算它们? - Is there a function for condensing an expression that has many redundant terms so as to not have to recalculate them?

考虑简单的表达式: c = ((a * b) / (x * y)) * sqrt(a * b + 1 + x * y) 计算机只需要计算a * b和x * y一次,但是计算给定的表达式会使计算机计算它们两次。 最好这样写: 是否有 function(最好是 python,但任何语言都应该足够)将第 ...

具有 2 个以上步骤的算法的最坏情况时间复杂度 - Worst-case time complexity of an algorithm with 2+ steps

我的目标是编写一个算法来检查未排序的正整数数组是否包含值 x 和 x^2,如果包含,则返回它们的索引。 我已经解决了这个问题,建议首先使用归并排序对数组进行排序,然后对 x 执行二进制搜索,然后对 x^2 执行二进制搜索。 然后我写道:“由于二分搜索的最坏情况运行时间为 O(log n),归并排序的 ...

不可变集合的摊销时间复杂度分析是否被破坏? - Is amortized time complexity analysis broken for immutable colections?

更新:这个问题是我们如何对不可变的 collections 使用摊销分析? Scala 的不可变队列只是一个例子。 从源代码中可以清楚地看到这个不可变队列是如何实现的。 正如在答案中指出的那样,Scala 的消息来源并没有提到所有的摊销时间。 但是指南和互联网播客可以。 正如我所见,C# 具有类 ...

为什么 Python 列表 append 的摊销成本为 O(1),即使在没有剩余空间时它没有加倍容量? - Why is amortized cost of Python list append is O(1) even though it does not double the capacity when there is no space left?

从 web 中找到的材料来看,当列表已满时,似乎 Python 列表中的容量不会翻倍。 https://medium.com/analytics-vidhya/amortized-runtime-analysis-for-python-lists-35e935e290db Java 的 Arr ...

什么是“摊销数”? - What is "amortized number"?

我无法理解这个问题,知道这个问题的人可以告诉我解决方案吗? 负责敲钟的弗朗西斯神父制造了一个自动敲钟的装置。 在每个准确的时间,设备至少会响起 n 个铃声中的 1 个。 具体来说,第 i 个铃声每 1 小时响一次。 例如,假设 n = 4 并且弗朗西斯科神父在午夜刚过就打开了他的设备。 铃声的响铃 ...

通过非常量,不断地调整数组的大小 - Resizing an array by a non-constant, continually

我想对动态数组进行摊销分析:当我们执行一系列 n 插入时,每当一个大小为 k 的数组填满时,我们重新分配一个大小为 k+sqrt(k) 的数组,并复制现有的 k 值进入新数组。 我是摊销分析的新手,这是我还没有遇到的问题,因为我们每次都用不同的非常量值调整数组的大小。 (newSize=prev ...

摊销分析是否仅适用于数据结构? - Does amortized analysis applies to data structures only?

在我看到的任何地方(在 SO 和其他来源上),摊销分析通常仅适用于数据结构。 例如对于动态数组或展开树。 但是,我还没有看到对纯算法进行摊销分析的应用。 说算法的摊销分析有意义吗? 摊销分析假设了一系列操作,这对于数据结构是正确的,但对于算法则不是。 ...

斐波那契堆的潜在法摊销分析 - Amortized Analysis of Fibonacci Heap with Potential Method

我正在尝试使用潜在方法对斐波那契堆进行摊销分析。 我正在努力理解 pop min / delete min 操作的分析。 在教程中,我可以找到限制“pop min”操作的摊销复杂度,例如这个,教程作者将潜力设置为“phi(fib heap) = 根节点数 + 2 * 失败者节点数”。 然后,他们分 ...

具有快速最小、删除、插入、搜索大计算作业的数据结构 - Data structure with quick min, delete, insert, search for big compute job

我正在寻找一种数据结构,可以让我有效地执行所需的操作。 我希望遍历 10 11到 10 13次之间的循环,因此 Ω( n ) 操作是正确的。 (我将尝试减少n以便它可以放入缓存中,但它不会很小。)每次通过循环我都会调用 分钟正好一次 只删除一次(删除最小值,如果有帮助) 插入0~2次,平 ...

用常数调整 arrays 的大小时的摊销复杂性? - Amortization complexity when resizing arrays by a constant?

我知道,当您通过标量调整数组大小时(例如将数组的长度加倍,然后将所有元素复制到新的大数组中),摊销时间复杂度为 O(1)。 但是为什么当你用一个常数(比如,每次将其大小调整 +10)而不是 O(1) 时,会出现这种情况呢? 编辑: https://www.cs.utexas.edu/~slaber ...

堆栈操作的摊销分析 - Amortized analysis on Operations of stack

假设我们在一个最初为空的堆栈上执行一系列操作(即,top、push 和 pop),以便堆栈大小不超过 k。 在每 k 次操作之后,我们制作整个堆栈的副本以用于备份目的。 我如何使用会计方法证明每个堆栈操作将具有 O(1) 摊销复杂度,无论堆栈是否被复制? ...

Hash 表的摊销时间 - Amortized Time with Hash Table

我解决了问题的第一部分,但卡在了第二部分。 我有一部电梯,想要支持以下内容: Init()设置电梯从0层开始,运行方向为向上(这个function只调用一次,方向不能改变)。 O(1) AddStop(K)将电梯到达 k 层时应该停止的指令保存到 DS 中。 O(log n) 而 n 是电梯 ...

AVL 树中的摊销时间计算 - Amortized Time Calculation in AVL tree

我的教授在 class 中显示了以下问题,并提到答案是 O(1) 而我的完全不同,我希望得到一些帮助,了解我犯了哪些错误。 问题: 计算 AVL 树中 F 方法的摊销时间复杂度,当我们从最小节点开始,并且每次我们在最后找到的成员上调用 F 时。 F 的描述:当我们在特定节点时,F 继续像中序遍历一 ...

在最小堆上插入/删除的摊销成本 - Amortized cost of insert/remove on min-heap

我最近遇到了一个面试问题。 没有提供任何其他信息(也许应该使用默认实现......) n 对空最小堆(删除元素的位置已知)的任意插入和删除操作序列的摊销成本为: A) 插入 O(1),删除 O(log n) B) 插入 O(log n),删除 O(1) 选项( B )是正确的。 当我看到答卷时 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM