基于深度优先搜索的全排列实现方法
2016-04-17 10:35
393 查看
<pre name="code" class="java"> //输入一个数n,输出1~n的全排列 //形象化为把4个编号为1~n的小球放进编号1~n的箱子里 public class AllSort { //假设此时n为4,0不算,若编号为n的小球放进箱子,相应的book[i]置1 static int book[]=new int[5]; //4个箱子里放的小球的编号,箱子编号1-4,0不算 static int a[]=new int[5]; //表示当前操作的箱子数,初始为1 static int count=0; public static void dfs(int box) { if (box==5) { count++; for (int i = 1; i < a.length; i++) { if (i==a.length-1) { System.out.println(a[i]); }else { System.out.print(a[i]); } } } for(int i=1;i<book.length;i++){ if(book[i]==0){ a[box]=i; book[i]=1; dfs(box+1); book[i]=0; } } } public static void main(String[] args){ int box=1; dfs(box); System.out.println("共有"+count+"中排列顺序"); } }
深度优先搜索,关键是解决”现在该怎么做“,把当前状态下的每一种可能的方法都尝试一遍(用for循环实现);当前步骤解决后,在进入下一步(递归调用自身,但是step+1),下一步的解决方法,也跟当前步骤一样
相关文章推荐
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- asp 多关键词搜索的简单实现方法
- C#使用foreach语句搜索数组元素的方法
- WordPress中用于获取搜索表单的PHP函数使用解析
- JavaScript中数组的排序、乱序和搜索实现代码
- jquery ztree实现树的搜索功能
- C#编程实现Excel文档中搜索文本内容的方法及思路
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- 可以用来搜索当前页面内容的js代码
- 全文搜索和替换
- javascript搜索自动提示功能的实现第1/3页
- iOS应用中UISearchDisplayController搜索效果的用法
- mysql 模糊搜索的方法介绍