java全排列算法

 递归全排列:

/*以num=[1,2,3,4,5]为例
     * 1.f1(0,num)
     * 2.i=0->i=4递归到最后一个元素,输出1 2 3 4 5
     * 3.i=4->i=3交换4 5,i=3->i=4,输出1 2 3 5 4
     * 4.i=4->i=3,5 4换回来,for循环完毕,返回上一层
     * 5.i=3->i=2 交换3 4,i=2->i=3
     * 6.重复往深递归
     */
    private static void f1(int i,int[] num) {
        if(i==num.length-1) //已到最后一个元素,返回
            System.out.println(Arrays.toString(num));
        else {  /*当前元素和它后面的每个元素交换,
         *交换后进入下一个元素的交换,返回后再换回来
         */
            for(int j=i;j

https://www.cnblogs.com/lshao/p/8617387.html

你可能感兴趣的:(数据结构与算法)