Java String Permutation

2011-01-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);
	}	
}