Merge Sorted Array

合并排序后的数组

从长数组的尾部开始合并,时间复杂度O(m+n),空间复杂度O(1)

class Solution {
public:
    void merge(int A[], int m, int B[], int n) 
    {       
        int i=m-1;
        int j=n-1;
        int k=m+n-1;
        while(i>=0&&j>=0)
        {
            if(A[i]>B[j])
            A[k--]=A[i--];
            else 
            A[k--]=B[j--];
        }
        if(i<0)
        {
            while(j>=0)
            A[k--]=B[j--];
        }
        if(j<0)
        {
            while(i>=0)
            A[k--]=A[i--];
        }
    }
};
原文地址:https://www.cnblogs.com/tgkx1054/p/3087637.html