试试看插入代码的功能,代码为递归实现的组合和全排序

public class combineandsort {
	public static void combine(int a[],int nlen,int m,int out[]){
		if(m==0){
			/*
			for(int i=0;i=m;i--){
				out[m-1]=a[i-1];
				combine(a,i-1,m-1,out);
			}
		}
	}
	
	public static void allsort(int a[],int begin,int end){
		if(begin==end){
			for(int i=0;i

    顾名思义,组合就是从M个数中选出N个数有多少种组合,比如1,2,3三个数中选出两个数的组合有12,23,13,不考虑顺序;全排列就是N个数考虑顺序的话有多少种输出的可能。

    先组合再排列就实现了从M个数中选出N个数并考虑顺序输出。

    全排列:把数组第一位依次都后面几位交换,递归第二位第三位直到最后一位。需要注意的是,第i位被交换到第一位并输出了所有可能之后,还要把其换回第i位。

    组合:out是输出数组,n是out数组中还有几位没有数字,从最后一位开始递归,不用交换,直接把原数组的最后一位赋给out第一位,然后从最后一位往前递归。


你可能感兴趣的:(Java学习总结,java)