【发布时间】:2014-07-27 17:14:57
【问题描述】:
我想求出以下合并排序算法的代价:
Merge(A,p,q,r)
n1=q-p+1;
n2=r-q;
We create the sequences:
L[1 .... n1+1] and R[1.... n2+1]
for i<-1 to n1
L[i]<-A[p+i-1]
for j<-1 to n2
R[j]<-A[q+j]
L[n1+1]<-oo , R[n2+1]<-oo ( sentinel elements )
Composition:
i<-1, j<-1
for k<-p to r
if L[i]<=R[j] then
A[k]<-L[i]
i<-i+1
else
A[k]<-R[j]
j<-j+1
MERGESORT(A,p,r)
if p<r then
q<-floor((p+r)/2)
MERGESORT(A,p,q)
MERGESORT(A,q+1,r)
Merge(A,p,q,r)
根据我的课本,成本是T(n)=2T(n/2)+cn,n>1 and T(n)=c,n=1
但我还没有真正理解我们如何得出这种关系。
你能给我解释一下吗?
【问题讨论】: