我被要求证明:
对于n> = n0和T(n) = T(an) + T(bn) + n
,对于n&gt; n0,a + b <1,其复杂度为T(n) = O(n)
。
提示:通过归纳证明:T(n) ≤ cn
为合适的c。
在这种情况下,我想知道如何通过归纳证明。
谢谢。
答案 0 :(得分:0)
如果我们假设an
和bn
的不等式为真,那么
现在我们不知道这个常数和c
之间的确切关系;但如果我们看一下
但是a + b
可以任意接近1,这意味着c
将是任意大的。由于常数必须是有限的,因此这有点击败了O符号。因此我们采取下限:
因此我们找到了假设可以为真的c
范围。 1的下限是因为您的域n >= n0
表示T(n0) = n0
。这里常量为1,因此c
必须至少为1才能满足假定的初始界限。这也限制了a
和b
的值为正。
但是为了使假设成立,a, b
可以在[0, 1)
中使用任何值,这意味着如果T(n)
的边界正确,那么它是也适用于任何较大的参数,例如T(n + 1)
。
所以我们知道:
n = n0
n
为真,则n + 1
因此,通过归纳,T(n) <= cn
适用于任何n >= n0
,其中c
满足之前的界限。