su di un vettore. Puoi fare le permutazioni sugli indici e poi stampare il contenuto dell'indice
codice:
public class Permutazioni
{
public static void generaPermutazioni(int[] B, int estremoinferiore)
{ int temp;
// stampa permutazione attuale
if (estremoinferiore==B.length-1) {
for (int j=0; j<B.length; j++) System.out.print(B[j]+" ");
System.out.println();
}
for (int i=estremoinferiore; i<B.length; i++)
{temp = B[estremoinferiore];
B[estremoinferiore] = B[i];
B[i] = temp;
generaPermutazioni(B, estremoinferiore+1);
temp = B[estremoinferiore];
B[estremoinferiore] = B[i];
B[i] = temp;
}
}
public static void main()
{ int[] A = {4,3,2,1};
generaPermutazioni(A,0);
}
}
questo lo fa su di una stringa
codice:
public class Permutazioni {
// stampa su un PrintStream tutte le permutazioni della stringa s
public static void permutazioni(String s, PrintStream ps) {
permutazioni("", s, ps);
}
private static void permutazioni(String fissa, String permuta,
PrintStream ps) {
if (permuta.length() == 0)
ps.println(fissa);
else
for (int i = 0; i < permuta.length(); i++)
permutazioni(fissa + permuta.charAt(i),
permuta.substring(0,i) + permuta.substring(i+1),
ps);
}
}