动态数组中每次插入操作的平均时间为 a/(a-1)

发布于 2024-11-27 00:40:29 字数 220 浏览 0 评论 0原文

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

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

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

On the wikipedia article on Dynamic Arrays it mentions (apart from the normal section on amortised insertion time) that:

The value of this proportion a [the constant factor by which we increase the capacity] leads to a time-space tradeoff: the average time per insertion operation is about a/(a−1), while the number of wasted cells is bounded above by (a−1)n.

I can see where the (a-1)n for wasted cells comes from but can anyone explain to me why the average time is a/(a-1)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剧终人散尽 2024-12-04 00:40:29

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

  • 在这n个元素中,有n个元素至少需要1次分配。
  • 在这n个元素中,有n/a个元素至少需要2次分配。
  • 在这n个元素中,有n/a^2个元素至少需要3次分配。
  • ...

???

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

Let S be the time to insert n elements.

  • In these n elements, there are n elements cost at least 1 allocation.
  • In these n elements, there are n/a elements cost at least 2 allocation.
  • In these n elements, there are n/a^2 elements cost at least 3 allocation.
  • ...

???

Therefore a/(a-1) is the average complexity to insert an element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文