Merge Sorted Array

问题:将B按顺序合并到A上
分析:插入排序,注意A数组为空

class Solution
{
public:
    void merge(int A[], int m, int B[], int n)
    {
        int i,j;
        if(m==0)
        {
            for(i=0; i<n; i++) A[i]=B[i];
        }
        else
        {
            for(j=0;j<n;j++)
            {
                for(i=m-1+j; i>=0; i--)
                    if(A[i]>B[j]) A[i+1]=A[i];
                    else break;
                A[i+1]=B[j];
            }
        }
    }
};

归并排序的合并部分

class Solution
{
public:
    void merge(int A[], int m, int B[], int n)
    {
        int i=0,j=0;
        int k=0;
        int C[m+n+1];
        while(i<m && j<n)
        {
            if(A[i]<B[j]) C[k++]=A[i++];
            else C[k++]=B[j++];
        }
        while(i<m) C[k++]=A[i++];
        while(j<n) C[k++]=B[j++];
        for(i=0;i<k;i++) A[i]=C[i];
    }
};

  

原文地址:https://www.cnblogs.com/zsboy/p/3885834.html