Mezclar datos de dos vectores y ordenarlos

Hola expertos quisiera realizar una consulta sobre un método en el que estoy trabajando que consiste en recibir dos vectores y comparar los datos de ambos y colocarlos en un tercer vector para que queden ordenados.
Mi método consiste:
private void intercalar(int a[], int b[])
{
int i = 0;
int j = 0;
int k = 0;
vectorC = new int[vectorA.length + vectorB.length ];
while(i < a.length && j < b.length)
{
if(a < b[j])
{
vectorC[k] = a;
i = i + 1;
}
else
{
vectorC[k] = b;
j = j + 1;
}
k = k + 1;
}
//copiar el resto del vector faltante
if(i < a.length)
for(int h = i; h < a.length; h = h + 1)
{
k = k + 1;
vectorC[k] = a[h]; // si el vector a es más pequeño error
}
else
for(int f = j; f < b.length; f = f + 1)
{
k = k + 1;
vectorC[k] = b[f];// si el vector B es más pequeño error
}
imprimirVectorC(vectorC);
}
Pero mi problema radica en que siempre el vector mas pequeño sea A o B me arroja un error fuera de indice. Lo he probado sumandole 1 a la dimension del vector C pero no es la gracia ya que me figura un valor 0 que nadie ha introducido.
En negrita estan las lineas de las que hablo que me salta el error en el vector más pequeño.
Desde ya muchas gracias y espero alguien pueda ayudarme!!

Añade tu respuesta

Haz clic para o