codice:
private static void merge(int[] v, int[] v1, int[] v2)
{
int i = 0, i1 = 0, i2 = 0;
while (i1 < v1.length && i2 < v2.length)
if (v1[i1] < v2[i2])
// prima si usa i, poi lo si incrementa...
v[i++] = v1[i1++]; ---> PERCHE' SI INCREMENTANO LE VARIABILI?
else
v[i++] = v2[i2++];
da qua in giù mi è chiaro 
codice:
while (i1 < v1.length)
v[i++] = v1[i1++];
while (i2 < v2.length)
v[i++] = v2[i2++];
}
ad esempio se avessi i due vettori A= {2,4} e B={1,3} se provassi a fare i passi del codice con carta e penna mi verrebbe che C={vuoto, 4, 3} perchè dato che l'indice di C, ossi " i " comincia da 1 il primo elemento sarebbe sempre vuoto, ed i primi elementi di A e B non verrebbero solo letti ma mai scritti dato che i loro indici vengono incrementati... mi potete spiegare questo fatto che proprio non riesco a capire?