从数组中抽取n个元素的全排列(JAVA)

来源:互联网 发布:n9008v root软件 编辑:程序博客网 时间:2024/06/05 17:33

一个从某个数组中抽取n个元素的全排列小算法。

具体应用可以看Subsets题目。

public class Test {public static int b[];public static int totalcount=0;//a[]是被抽取的数组//except是抽取的个数//count2是抽取第几次,一共只能抽except次//count是对每次抽取的数进行不重复处理public static void permutation(int a[],int count,int count2,int except){if(count2==except){System.out.println(Arrays.toString(b));totalcount++;}else{if(count2==0){b=new int[except];}for(int i=count;i<a.length;i++){b[count2]=a[i];permutation(a,i+1,count2+1,except);}}}public static void main(String[] args) {int a[]={1,2,3,4,5,6,7,8,9,10,11,12};permutation(a,0,0,5);System.out.println(totalcount);}}