我一直在研究quicksort的reccurence关系,我可以了解它们如何达到最终的递归关系,但随后他们跳到了时间顺序。例如:
T(N) = T(N-1) + T(0)+ Theta(sqrt(N))
然后他们跳转到以下时间顺序:O(Nsqrt(N))
我不遵循它们从递归关系到时间顺序的方式......
答案 0 :(得分:0)
递归关系没有明确定义。你需要一个边界条件。我们假设T(1)=1=sqrt(1)
和T(0)=0
。
证明T(N)=O(N*sqrt(N))
非常简单:
T(N) = T(N-1) + Theta(sqrt(N)) = T(N-2) + sqrt(N-1) + sqrt(N)
= ... = sqrt(N) + sqrt(N-1) + ... + sqrt(1)
<= N * sqrt(N).
绑定<= N*sqrt(N)
显然是因为sqrt(1)<...<sqrt(N-1)<sqrt(N)
。
因此T(N)=O(N*sqrt(N))
。