您好,我正在学习本课程的算法类简介。但是,在计算中位数算法(here)的中位数的时间复杂度时遇到一些问题。
我想知道如何获得T(n)<=10cn from T(n)<=T(0.2n)+T(0.7n)+cn..
我认为我不能对上面的表达式应用母定理,而维基百科说我应该使用归纳法,但是我不知道怎么做。
答案 0 :(得分:0)
它正在使用感应。
假设小于或等于n
,我们有T(n) <= 10*c*n
(我们知道归纳的底数对于等于或小于T(10)
是正确的,因为它们是常数,我们可以为{使用足够大的值{1}})。现在我们要为c
证明这一点。我们知道T(n + 1)
。从归纳假设为T(n + 1) <= T(0.2(n + 1)) + T(0.7( n + 1)) + c(n+1)
和0.2(n + 1)
小于0.7(n+1)
(对于n
)来看,n > 10
和T(0.2(n + 1)) <= 10*c*0.2(n + 1)
。因此,T(0.7(n + 1)) <= 10*c*0.7(n + 1)
。证明完成了!