0

我正在从事的项目要求我创建一个数组,当数据添加到上限时,该数组将在添加数据时增长(现在不担心缩小),方法是在将数据添加到上限时将数组长度添加 50。

它以 100 的容量开始。因此,例如,在第 101 次添加时,它会扩展到 150 的容量。

在开始之前,我需要考虑使数组增长需要多少工作单元,例如 1000 个项目,假设将一个项目写入数组位置需要一个工作单元,而分配一个工作单元需要一个工作单元新数组。

我的想法是它需要: Arr Length Units of Work 100 1+100+50 150 1+200 ...

认为1用于分配,50用于填充数组,中间用于复制数据。因此 1000 需要 10367。

听起来对吗?

4

1 回答 1

2

如果创建一个新数组需要 1 个工作单位,并且每个写入数组的项目需要 1 个单位,那么它将需要

(1 + 100) // initial create and fill
+ (1 + 150)
...
+ (1 + 1000)

这是10469

于 2013-10-03T21:07:08.750 回答