求n个元素的全排列

public class test4 {
    public static void f(char[] data, int k) {        
        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;
            }
        }
        //输出
        if (k==data.length) {
            for (int i = 0; i < data.length; i++) {
                System.out.print(data[i]+" ");                
            }
            System.out.println();
        } 
    }class

    public static void main(String[] args) {
        String a = "ABC";
        char[] data = a.toCharArray();
        f(data, 0);//从第一个字母开始排列
    }
}
test

相关文章
相关标签/搜索