Algorithm 堆的摊销分析

Algorithm 堆的摊销分析,algorithm,math,data-structures,amortized-analysis,Algorithm,Math,Data Structures,Amortized Analysis,当我跑去的时候 我在第5-1页的底部读到,二项式队列、斐波那契堆和斜堆的插入操作摊销成本为O(1),删除操作摊销成本为O(logn)。接下来,作者写道,对于插入操作,配对堆有O(1)摊销成本,对于删除操作,配对堆有O(logn)摊销成本 关于这一点,请参阅第三(3)项作业和解决方案 没有定义为insert写入O(日志n)的堆类型 及O(1)删去 在本作业中,作者说二项堆的插入操作成本为O(logn),删除操作成本为O(1) 问题是,哪一个是正确的?我很困惑。因为堆的元素数是非负数,所以插入总是这

当我跑去的时候

我在第5-1页的底部读到,二项式队列、斐波那契堆和斜堆的插入操作摊销成本为O(1),删除操作摊销成本为O(logn)。接下来,作者写道,对于插入操作,配对堆有O(1)摊销成本,对于删除操作,配对堆有O(logn)摊销成本

关于这一点,请参阅第三(3)项作业和解决方案 没有定义为insert写入O(日志n)的堆类型 及O(1)删去

在本作业中,作者说二项堆的插入操作成本为O(logn),删除操作成本为O(1)


问题是,哪一个是正确的?我很困惑。

因为堆的元素数是非负数,所以插入总是这样≥ #如果从空堆开始,则删除。在摊销时间范围内,O(1)插入/O(logn)删除意味着O(logn)插入/O(1)删除,通过更改会计,插入预付其相应的删除(如果存在)。这里没有矛盾。

请解释更多,这对你来说很明显,但对我来说不是。@jimmischel在上面链接的帖子中说“我说过插入接近O(1),移除接近O(logn)。我特别声明我的分析仅限于二进制堆。如果你使用其他类型的堆(配对堆、斐波那契堆等)“为什么”O(1)insert/O(logn)delete因此意味着O(logn)insert/O(1)delete“保持不变?”@user4249446阅读句子的其余部分?从另一个角度来看,我们把势函数从φ(.)改为φ(.)+#元素*Theta(logn)。是的,可以说更简单吗?在某种程度上理解我?