class Solution {
public:
void merge(int A[], int m, int B[], int n) {
//思路:从右往左取两个数组中的数做比较,依据从大到小的顺序 从右往左放
int i=0,j=0;
for(i=m,j=n;i>0&&j>0;)
{
A[i+j]=A[i-1]>B[j-1]?A[--i]:B[--j];
}
//如果B数组遍历完了,这个时候A肯定是有序的。如果B数组没遍历完,需要把数据挪过来
while(j--)
{
A[i+j]=B[j];
}
}
};

京公网安备 11010502036488号