![](https://csdnimg.cn/release/download_crawler_static/5318280/bg2.jpg)
第2章
2.1-1
2.1-2
![](https://csdnimg.cn/release/download_crawler_static/5318280/bg3.jpg)
2.1-3
2.1-4
2.2-1
2.2-2
![](https://csdnimg.cn/release/download_crawler_static/5318280/bg4.jpg)
2.2-3
2.2-4
2.3-1
2.3-2
void Merge(int *A,int p,int q,int r)
{
//构建左半部分和右半部分的辅助数组
int n1=q-p+1;
int n2=r-q;
int *L=new int[n1];
int *R=new int[n2];
for (int i=0;i<n1;i++)
{
L[i]=A[p+i-1];
![](https://csdnimg.cn/release/download_crawler_static/5318280/bg5.jpg)
}
for(int j=0;j<n2;j++)
{
R[j]=A[q+j];
}
int i=0;
int j=0;
int k=p-1;
while((i<=n1-1)&&(j<=n2-1))
{
if(L[i]<=R[j])
{
A[k]=L[i];
i++;
}
else
{
A[k]=R[j];
j++;
}
k++;
}
while(i<=n1-1)
{
A[k]=L[i];
i++;
k++;
}
while(j<=n2-1)
{
A[k]=R[j];
j++;
k++;
}
delete[]L;
delete []R;
}
2.3-3
- 1
- 2
- 3
- 4
- 5
- 6
前往页