求全排列和组合(JAVA)

来源:互联网 发布:windows to go u盘推荐 编辑:程序博客网 时间:2024/06/05 19:09

allSort()是很常用的一个函数,是用来求全排列的,学算法之前根本不知道。

 

 

    //int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };   allSort (a, 0, a.length      - 1);

    Public static void allSort (int[] a, intstart, int end) {

    if (start > end) {

        // 做一些想要的操作

    } else {

        for (int i = start; i<= end; i++) {

           int temp = a[i];

           a[i] = a[start];

           a[start] = temp;

 

           allSort (a, start +1, end);

 

           temp = a[i];

           a[i] = a[start];

           a[start] = temp;

        }

    }

    }

 

 

ZuHe()函数用于求所有子集,也就是求组合。

 

//int[] A = new int[100000];      

                                          

    Publicstatic void ZuHe(int[] A, int cur, int n) {

    if (cur == n) {

        for (int i = 0; i <cur; i++) {

           if(A[i] != 0) {

               System.out.print(i+ " ");

           }

        }

        System.out.println();

        return;

    }

    A[cur] = 1;

    ZuHe (A, cur+1, n);

    A[cur] = 0;

    ZuHe (A, cur+1, n);

    }



0 0
原创粉丝点击