da qua in giù mi è chiarocodice: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++];
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?codice:while (i1 < v1.length) v[i++] = v1[i1++]; while (i2 < v2.length) v[i++] = v2[i2++]; }


Rispondi quotando