动态阵列中每次插入操作的平均时间是/(a-1)

时间:2011-07-27 17:01:07

标签: dynamic-arrays

在关于动态数组的维基百科文章中,它提到了(除了关于摊销插入时间的正常部分):

  

此比例的值 a [我们增加容量的常数因子]导致时空权衡:每次插入操作的平均时间约为a /(a-1) ,浪费的细胞数量超过(a-1)n。

我可以看到浪费细胞的(a-1)n来自哪里但有人可以向我解释为什么平均时间是/(a-1)?

1 个答案:

答案 0 :(得分:0)

设S是插入n个元素的时间。

  • 在这n个元素中,n个元素的成本至少为1。
  • 在这n个元素中,n / a元素成本至少为2。
  • 在这n个元素中,n / a ^ 2个元素的成本至少为3。
  • ...

???

因此a /(a-1)是插入元素的平均复杂度。