使用dfs求解全排列

//借助两个数组,使用dfs输出全排列
import
java.util.Arrays; public class FullPermutation { private static int [] result;//存放全排列的结果 private static boolean [] visit;//定义一个标记数组 private static int total; //全排列的长度 private static void dfs(int count){ if(count==total){ System.out.println(Arrays.toString(result)); //return; } for(int i=0;i<total;i++){ if(visit[i]){ visit[i] = false; result[count] = i; dfs(count+1); visit[i] = true; } } } public static void main(String[] args) { total = 3;//以长度为5举例 result = new int[total]; visit = new boolean[total]; Arrays.fill(visit,true); dfs(0); } }

 

posted on 2018-03-04 12:38  ZhangのBlog  阅读(1351)  评论(0编辑  收藏  举报