题解 | #合并两个有序的数组#
合并两个有序的数组
http://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
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--]; } };