用回溯算法解决全排列问题

来源:互联网 发布:csol鲨鱼数据 编辑:程序博客网 时间:2024/04/29 19:11

全排列问题的回溯解法:


public class Permute {public int N;public int[] X;public static void main(String[] args) {new Permute().test(4);}public void test(int _N){N=_N;X=new int[N];for(int i=0;i<N;i++)X[i]=i+1;backTrace(0);}public void backTrace(int t){if(t==N-1){for(int i=0;i<N;i++)System.out.print(X[i]);System.out.println();return;}else{for(int i=t;i<N;i++){swap(X,t,i);backTrace(t+1);swap(X,t,i);}}}public void swap(int[] arr,int i,int j){int temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}

0 0