欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java使用递归实现全排列,java递归排列,public class

来源: javaer 分享于  点击 13405 次 点评:200

Java使用递归实现全排列,java递归排列,public class


public class AllPermutation{    public static void main(String[] args)    {        //使用递归完成全排列        char[] source=new char[]{'A','B','C'};        char[] result=new char[source.length];        allPermutation(0,source,result);        }    /**     *      * @param index当前考虑的数的下标(从0开始)     * @param source     * @param result     */    public static void allPermutation(int index,char[] source,char[] result){        //当源数据中只有一个字符时,将该字符加入结果数组,并输出        if(source.length==1){            result[index]=source[0];            show(result);            return ;        }        for(int i=0;i<result.length-index;i++){            result[index]=source[i];            char[] newSource=getNewSource(source,source[i]);            allPermutation(index+1, newSource,result);        }    }    public static void show(char[] result){        System.out.println(result);    }    /**     * 生成去掉指定字符的新源数据数组     * @param source 原来的源数据数组     * @param c 指定去掉的字符     * @return     */    public static char[] getNewSource(char[] source,char c){        char[] newSource=new char[source.length-1];        for(int i=0,j=0;i<source.length;i++){            if(source[i]!=c){                newSource[j]=source[i];                j++;            }        }        return newSource;    }}
相关栏目:

用户点评