列表和迭代器ADT

时间:2015-02-25 22:47:50

标签: arrays list collections runtime big-o

假设我们维护一个元素集合C,每次我们向集合添加一个新元素时,我们将C的内容复制到一个恰当大小的新数组列表中。在这种情况下,将n个元素添加到最初为空的集合C的运行时间是多少?

1 个答案:

答案 0 :(得分:0)

  • 添加第一个元素。 (1次操作)。
  • 添加第2个元素。复制第一个元素并添加新元素(2个操作)。
  • 添加第3个元素。复制第一个和第二个元素并添加新元素(3个操作)
  • 添加 n 元素。复制( n-1 )元素并添加新元素( n 操作)。

因此,为了添加 n 元素,我们总共有1 + 2 + 3 + ... + n 操作,which is equal to(n)( n + 1)/ 2 =(n ^ 2 + n)/ 2。在Big O Notation中,可以说在该集合中添加元素是 O(n ^ 2)