Hola.
Entiendo... no deseas ordenar un arreglo por el método de inserción, sino ir insertando en órden los ítems a medida que se van agregando al arreglo.
Entonces podes tratarlo así:
Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
void insertInOrder( int *, int, int );
int main( )
{
int a[] = { 50,2,2,100,5,3,1,7,9 };
int b[] = { 4,2,6,10,8 };
int i;
int asz = sizeof( a ) / sizeof( a[0] );
int bsz = sizeof( b ) / sizeof( b[0] );
int tot = asz + bsz;
// inicializar c
int *c = ( int* ) malloc( sizeof(int) * tot );
for ( i = 0; i < tot; i++ ) c[i] = INT_MAX;
// insertar elementos de a en c
for ( i = 0; i < asz; i++ ) insertInOrder( c, tot, a[i] );
// insertar elementos de b en c
for ( i = 0; i < bsz; i++ ) insertInOrder( c, tot, b[i] );
// mostrar
for ( i = 0; i < tot; i++ ) printf( "%d ", c[i] );
free( c );
getchar();
return 0;
}
// Insertar en órden
void insertInOrder(int *array, int size, int value)
{
int i = size - 1;
while( value < array[i] && i >= 0 ) {
array[i+1] = array[i];
i--;
}
array[i+1] = value;
}
Salida:
Saludos
