“因此,插入N个元素需要O(N)个工作总计。每个插入平均为O(1),尽管在最坏的情况下每个插入需要O(N)个时间。这个引用在破解编码访问中找到。即使关于它的一点小事让我感到厌烦,我也会理解这种说法。在好的日子里,摊销的插入是O(1)。这仅仅意味着,当可调整大小的数组不需要调整大小时,然后插入一些内容就是简单的O(1)。这很清楚。但是,在糟糕的一天,当我们用完空间时,我们需要O(N)来插入那个额外的元素。但是,我不同意上面的说法,它表示在最坏的情况下,有些插入采用O(N)。不应该说,在最坏的情况下,ONE插入采用O(N)。可调整大小的阵列和分期运行时间
为了使这个更清楚,下面是我说的一个例子。假设我们有一个可调整大小的数组,但是我们该数组的大小是4。现在让我们说插入5个元素,我们有O(1),O(1),O(1),O(1),但是一旦我们到达最后一个元素,我们将不得不将所有这些家伙复制到一个新的数组中,这个过程会给我们一个O(N)的代价。
有人可以请澄清这一点对我来说。我不明白为什么这本书说,当我们在旧数组中运行空间时,只需要将所有元素复制到一个新数组中时,某些情况下会使用O(N)。
每次需要调整您的阵列时间将是O(N)英寸 – Stargateur
参见[常量分期时间]这个答案(http://stackoverflow.com/questions/200384/constant-amortized-time) –
我不明白有什么用报价和你的理解的差异...不书中说完全相同的事情:插入可为O(N)在最坏的情况下 – shole