【问题标题】:Amortized analysis accounting method摊销分析法
【发布时间】:2016-03-16 00:04:42
【问题描述】:

我试图在数据结构上的 n 个操作序列中找到每个操作的摊销成本,其中如果 i 是 3 的精确幂,则第 i 个操作成本 i,否则为 1

谁能解释一下如何解决这个问题

我找到了 O(6),我不知道它是正确的还是错误的。

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 请告诉我们你要计算O的代码

标签: algorithm aggregate-functions aggregate amortized-analysis


【解决方案1】:

对于给定的n,有floor(log_3(n)) 成本为i 的“昂贵”操作,其余的每个都需要O(1)

  O(1/n * (n - floor(log_3(n)) + sum_k=0..floor(log_3(n)) { 3^k }) )
= O(1/n * (n + (3^(floor(log_3(n))+1) - 1) / (3 - 1) ) )  // applying the formula for a finite sum of a geometric series
= O(1/n * (n + c * n) )
= O(1)

请注意,Big-Oh 符号从常数因子中抽象出来,因此 O(6) 没有多大意义。

【讨论】:

  • 你能不能给我解释一下,如何用会计方法解决它
猜你喜欢
  • 2013-11-08
  • 2012-12-09
  • 2019-08-10
  • 2015-05-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 2021-06-02
相关资源
最近更新 更多