问题
证明 的解为O(nlgn)。证明这个递归的解也是Ω(nlgn)。得到的解为Θ(nlgn)分析
证明: | 假设递归式的解为O(nlgn),则 所以 所以当c>=1时,T(n)<=cnlgn,即T(n)=O(nlgn) 假设递归式的解也是Ω(nlgn),则 所以存在n0和c,当n>=n0时,T(n)>=2c(n/2-1)lg(n/2-1)+n=c(n-2)lg(n-2)+(1-c)n+2c>=c(n-2)lg(n-2)+(1-c)n 上式不能证明递归式的解是Ω(nlgn),我们改变猜测,使递归式的解是 Ω(nlg(n+2)) 这样可得T(n)>=cnlg(n+2)-2clg(n+2)-cn+2c+n>=cnlg(n+2)+(1-c)n-2clg(n+2) 因为lg(n+2)<=lg(n*n)=2lgn,所以T(n)>=cnlg(n+2)+(1-c)n-4clgn 因为多项式函数比指数函数增长的快,所以只要1-c>=0,那么必然存在n1,当n>=n1时, (1-c)n-4clgn>=0,即此种情况下T(n)=Ω(nlg(n+2)) 又因为nlg(n+2) > nlgn,所以nlg(n+2)=Ω(nlgn)。由传递性的T(n)=Ω(nlgn) T(n)=O(nlgn)和T(n)=Ω(nlgn),可得T(n)=Θ(nlgn) |