我有两个演示Queue的堆栈,我们调用Enqueue和Dequeue函数的次数是n(#enqueue + #dequeue = n)
我需要通过归纳证明n函数调用的复杂性是Θ(n)。
我知道我必须证明Ω(n)和O(n)。对于Ω(n),我想如果我将n次调用enqueue(每个都是O(1)),我可能会得到它。
老实说我是新手,我不知道如何通过归纳来证明这一点,任何人都可以帮我推?
由于
答案 0 :(得分:0)
我告诉你证据,但我不确定它是100%正确的。
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)