码迷,mamicode.com
首页 > 编程语言 > 详细

深度优先排序(数字全排列)

时间:2017-04-29 23:29:40      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:pen   alt   str   情况   book   play   stat   div   code   

输入一个整数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     }
数字全排列

 

深度优先排序(数字全排列)

标签:pen   alt   str   情况   book   play   stat   div   code   

原文地址:http://www.cnblogs.com/qinmeizhen/p/6785045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!