全排列
public class Quanpailie { /** * 全排列的思想,第一位和后面的每一位进行交换,然后递归下一位 * combinate(int a[],int start,int end) * 参数的意思是从第start位开始到end位进行全排列 * 每次需要把stsrt位与后面的每一位进行交换 */ public static void main(String[] args) { // TODO Auto-generated method stub int a[]={1,2,3}; combinate(a,0,a.length); } public static void combinate(int a[],int start,int end){ if(start==end-1){ for(int i=0;i<end;i++){ System.out.print(a[i]); } System.out.println(); return; } for(int i=start;i<end;i++){ swap(a,i,start); combinate(a,start+1,end); swap(a,i,start); } } public static void swap(int a[],int i,int j){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } }
123
132
213
231
321
312