2011 January 15
package test;
/**
* Metodo per la stampa di tutte le pertutazioni di una stringa
* @author Abejan
* @version 15/01/2011
*/
public class Permutazioni {
// Procedura ricorsiva che stampa le TUTTE le permutazioni
public static void permute(int level, String permuted, boolean used[], String original) {
int length = original.length();
if (level == length) { //permutazione completa
System.out.println("Permutazione = " + permuted);
} else {
for (int i = 0; i < length; i++) {
if(!used[i]){
used[i]=true;
permute(level+1,original.charAt(i)+permuted,used,original);
used[i]=false;
}
}
}
}
public static void main(String[] args) {
//inizializzazione stringa da permutare
String s="abc";
//arrary di lunghezza della stringa per gestione dei flag
boolean used[];
used = new boolean[3];
//lancio le permutazioni e stampo
permute(0, "", used, s);
}
}