通过归纳证明队列的复杂性

时间:2013-11-18 23:08:24

标签: data-structures time-complexity

我有两个演示Queue的堆栈,我们调用Enqueue和Dequeue函数的次数是n(#enqueue + #dequeue = n)

我需要通过归纳证明n函数调用的复杂性是Θ(n)。

我知道我必须证明Ω(n)和O(n)。对于Ω(n),我想如果我将n次调用enqueue(每个都是O(1)),我可能会得到它。

老实说我是新手,我不知道如何通过归纳来证明这一点,任何人都可以帮我推?

由于

1 个答案:

答案 0 :(得分:0)

我告诉你证据,但我不确定它是100%正确的。

排队+出队= N;

T(入队)= O(1)因为将其插入堆栈只需要1步。 T(出列)= O(n)的

T(入列+出列)GT; = MAX(T(入列),T(出列))

T(n)的> = MAX(O(1),O(n))的

T(n)= O(n),证明

By Induction

    1. For n=1
     T(enqueue)=O(1) & T(dequeue)=O(1) 
     Therfore , T(1)=O(1).

    2. Let T(n) = O(n) is true
       Then , to prove T(n+1)=O(n)
       (By Rule : T(a+b)=T(a)+T(b))
       So, 
       T(n+1)=T(n)+T(1)
             =O(n)+O(1) (from above explanation)
             =max(O(n)+O(1))
             =O(n)
     Hence Proved , T(n+1)=O(n) or T(n)=O(n)