首页 > 代码库 > Merge Sorted Array

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