【Java】递归法求n个元素的全排列

public class h {
    
    
	//k表示当前的交换位置。
    public static void f(char[] data,int k){
    
    
        if(k==data.length){
    
    
            for(int i=0;i<data.length;i++){
    
    
                System.out.print((data[i]+" "));
            } System.out.println();
        }

        for(int i=k;i<data.length;i++){
    
    
            {
    
    char t = data[k]; data[k] = data[i]; data[i] = t;} 
            f(data,k+1);
            {
    
    char t = data[k]; data[k] = data[i]; data[i] = t;} //回溯
        }
    }

    public static void main(String[] args){
    
    
        char[] data = "ABC".toCharArray();
        f(data, 0);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36045898/article/details/112692499