How do I merge two sorted arrays in to a single sorted array in C?

Viewed 61

This is what I tried:

while (a<na || b<nb)
{
    if(A[a]<B[b])
    {
        if(a<na)
        {
            C[c] = A[a];
            c++;a++;
        }
    }
    else if (A[a] == B[b])
    {
        C[c] = A[a];
        c++;a++;b++;

    }
    else
    {
        if (b<nb)
        {
            C[c] = B[b];
            c++;b++;
        }
    }
}
for (i=0;i<c;i++)
{
    printf("%d ",C[i]);
    
}
printf("\n");

Solutions in YouTube have while (a<na && b<nb ) instead of while (a<na || b<nb). What is the error in my logic?.

0 Answers
Related