首页 > 代码库 > 深度优先排序(数字全排列)
深度优先排序(数字全排列)
输入一个整数n(n<10),输出1-n的全排列
1 import java.util.Scanner; 2 public class One { 3 //数组a(模拟放数字牌的盒子)用于存放排序数字,数组book[i]用于标记牌i是否已经放入数组a 4 public static int a[]=new int[10],book[]=new int[10],n; 5 //函数f()用于输出所有可能情况的排列。 6 public static void f(int x){//x为第几个盒子 7 if(x==n+1){//当每次放玩牌的时候就把当次的排序输出 8 for(int j=1;j<=n;j++){ 9 System.out.print(a[j]+" "); 10 } 11 System.out.println(""); 12 } 13 for(int i=1;i<=n;i++){ 14 if(book[i]==0){//如果牌i还在手上 15 a[x]=i;//把牌i放入当前的盒子 16 book[i]=1;//标记牌i已经放入盒子(不在手上了) 17 f(x+1);//走到下一个盒子,继续排列 18 book[i]=0;//取出牌i,在该盒子放下一个牌 19 } 20 } 21 } 22 public static void main(String args[]) { 23 Scanner in=new Scanner(System.in); 24 n=in.nextInt(); 25 f(1);//从第一个盒子开始放牌 26 } 27 }
深度优先排序(数字全排列)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。