我试图计算T(n)=T(cn)+T((1−c)n)+1
我虽然要改变T(n)+1 to S(n)
然后我得到了
S(n)-1=S(cn)-1+S((1−c)n)-1+1 =====> S(n)=S(cn)+S((1−c)n)
但现在我仍然坚持计算。
答案 0 :(得分:0)
你应该尝试用递归树来解决这个问题 时间补偿
T(n) 1
/ \
/ \
T(cn) T((1-c)n) 1
/ \ / \
/ \ / \
T(ccn) T(c(1-c)n) T(c(1-c)n) T((1-c)(1-c)n) 1
|
|
|
T(n(1-c)^k)
这将一直持续到n(1-c)^k=1
为止
为 k 解决这个问题,给出 k = log 1-c (1 / n)
因此每个步骤的时间复杂度为 O(1),因此
总时间复杂度 TC = O(log 1-c (1 / n))