void merge(int A[], int m, int B[], int n) {
//直接合并的话A中元素会有覆盖的问题。
//那么我们就倒着来归并就不会有覆盖的问题了,注意细节实现,考虑周全就好了。
int indexa=m-1;
int indexb=n-1;
int end=m+n-1;
while(indexb>=0 && indexa>=0)
{
if(A[indexa]>B[indexb])
{
A[end]=A[indexa];
indexa--;
}else
{
A[end]=B[indexb];
indexb--;
}
end--;
}
while(indexb>=0)
{
A[indexb]=B[indexb];
indexb--;
}
}



京公网安备 11010502036488号