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]; } } };