Scusa ma non capisco proprio cosa combina lo shuffle!
Il codice è il seguente:
public static void shuffle(String[] a) {
int N = a.length;
for (int i = 0; i < N; i++) {
int r = i + (int) (Math.random() * (N-i)); // between i and N-1
swap(a, i, r);
}
}
-----------------------------------------------------
public static void exch(String[] a, int i, int j) {
String swap = a[i];
a[i] = a[j];
a[j] = swap;
}Quando fa il calcolo di r, non rischia di andare oltre la posizione max dell'array?
Es:Il mio array è composto da 4 elementi
se i=1 e la funziona Random calcola un valore=4
il valore di r non sarà r=5
quindi oltre la massima dimensione dell'array che è 4? cosa succede?