简单数组中追加操作的时间复杂度

时间:2014-03-04 13:59:45

标签: arrays computer-science time-complexity

在最坏的情况下,附加一个元素(在末尾插入)数组可以是满的。因此,会创建一个新数组,并将 n 元素从此数组复制到新数组。

我在文献中读到,此操作的最坏情况时间复杂度为 O(1),为什么会这样?不应该 O(n)?

我读过this question。但对我没有任何意义!

2 个答案:

答案 0 :(得分:2)

操作本身是O(n)。

如果您获得每个元素的平均操作,则得到O(1),这是摊销成本。

http://en.wikipedia.org/wiki/Amortized_analysis

了解详情

答案 1 :(得分:0)

我以同样的方式看待它。

如果是List,那么在结尾处添加元素是O(1)。

但是对于数组,如果已满,则需要创建一个新数组,复制旧数组中的所有元素,然后添加新元素。

对我来说也是O(n)。