Jun 2, 2017

In-place sorted array merge

void mergeInplace(int a[], int alen, int amaxlen, int b[], int blen)
{
    int final = alen+blen-1;
    if(final > amaxlen-1)
        return;
    alen--;
    blen--;
    while(alen>=0 && blen>=0)
    {
        if(a[alen] > b[blen])
        {
            a[final--] = a[alen--];
        }
        else
        {
            a[final--] = b[blen--];
        }
    }
    while(alen>=0)
    {
        a[final--] = a[alen--];
    }
    while(blen>=0)
    {
        a[final--] = b[blen--];
    }
    
}