美文网首页
递归——数组全排列

递归——数组全排列

作者: 就这样吧嘞 | 来源:发表于2019-05-13 07:56 被阅读0次

    方法一 深度

    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    //      Scanner sc = new Scanner (System.in);
            int sz[] = {1,2,3,4,5,6};
            digui(sz,0,5);
            
        }
        public static void swap(int aa[],int m,int n) {
            int x =aa[n];
            aa[n]=aa[m];
            aa[m]=x;
        }
        public static  void digui(int aa[],int start ,int end) {
            if(start==end) {
                for(int i=0;i<aa.length;i++) {
                    System.out.print(aa[i]);
                }
                System.out.println();
            }
            else {
                for(int j=start;j<=end;j++) {
                    swap(aa,start,j);
                    digui(aa,start+1,end);
                    swap(aa,start,j);
                }
            }
            
        }
    }
    
    

    方法二 字典序递归

    public class Main {
        static int aa[]= {1,2,3};
        static int bb[]=new int[aa.length];
        public static void main(String[] args) {
            pailie(0);
        }   
        public static void pailie(int dibiao) {
            if(dibiao==aa.length) {
                shuchu();
                return;
            }
            else {
                for(int i=0;i<aa.length;i++) {
                    int p=aa[i];
                    if(cishu(bb,p)<cishu(aa,p)) {//bb中次数小于a中次数时
                        bb[dibiao]=p;
                        pailie(dibiao+1);
                        bb[dibiao]=0;
                    }
                }
            }
        }
        private static void shuchu() {
            for(int i=0;i<bb.length;i++) {
                System.out.print(bb[i]);
            }
            System.out.println();
        }
        public static int cishu(int ku[],int x) {//返回数组中x出现 的次数
            int sum=0;
            for(int z:ku) {
                if(z==x) {
                    sum++;
                }
            }
            return sum;
        }
    }
    

    相关文章

      网友评论

          本文标题:递归——数组全排列

          本文链接:https://www.haomeiwen.com/subject/reukaqtx.html