//分治法:合并排序
int merge(int A[],int p,int q,int r) //假设数组A[p...q]和A[q+1...r]已经排好序
{
int n1=q-p+n;
int n2=r-q;
int L[n1],R[n2];
for(int i=1;i<=n1;i++)
L[i]=A[p+i-1];
for(int j=1;j<=n2;j++)
R[j]=A[q+j];
i=1;
j=1;
for(k=p;k<=r;k++)
{
if(L[i]<=R[j])
{
A[k]=L[i];
i++
}
else
{
A[k]=R[j];
j++;
}
}
}
评论