最佳案例,平均案例,最坏情况和摊销案例分析

时间:2013-01-30 13:38:40

标签: algorithm amortized-analysis

我正在寻找对事情如何运作的理解,而不仅仅是答案。虽然答案是答案,但我正在给予我的答案,但我并不确定,而且这些分析的文字也没有多少。

我很清楚这不是你应该如何实现堆栈,但这是我们已经给出的场景。

A部分

  

插入到包含N个整数的(未排序)数组a(0)的插槽a [0]中的最坏情况,平均情况和最佳情况运行时间是什么?给出界限。

B部分

  

如果每个插入都发生在[0],那么将N个整数插入最初为空的数组a(表示堆栈)的运行时间是多少?给出一个严格的O界限并解释你的答案。

教练非常清楚我们正在对[0]进行所有插入,并且没有从这个“堆栈”中删除。

我的分析是这个

假设:a.length>> Ñ

最好的情况是Theta(1),当我们插入一个空的“堆栈”时发生。

最坏情况是Theta(N),因为作为插入过程的一部分,我们必须移动N-1个元素以在[0]处腾出空间。

平均情况也是Theta(N),因为无论怎样,我们总是要转移N-1个元素。

摊销案件

每个插入成本(N-1)并且我们有N个元素,因此我们使用:

N
Sum  (i)  =  [ N(N+1) ] / 2 = N^2 / 2 which is O(N^2) for N insertions
i=1

摊销成本将为N ^ 2 / N = O(N)

我遇到的问题是这看起来很简单。我错过了一些东西,还是我已经把它丢了?

0 个答案:

没有答案