class Solution {
public:
void merge(int A[], int m, int B[], int n) {
/*//直接插入排序
int i=0,j=0;
while(j<n)
{
while(A[i]<=B[j]&&i<m+j)
i++;
for(int t=m+j; t>i; t--)
A[t]=A[t-1];
A[i++]=B[j++];
}
*/
//第二种,直接在A上从后往前操作
int i=m-1,j=n-1,k=m+n-1;
while(i>=0&&j>=0)
{
if(A[i]>B[j])
A[k--]=A[i--];
else
A[k--]=B[j--];
}
while(i>=0)
A[k--]=A[i--];
while(j>=0)
A[k--]=B[j--];
}
};
京公网安备 11010502036488号