深度优先排序(数字全排列)
Posted 失败girl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度优先排序(数字全排列)相关的知识,希望对你有一定的参考价值。
输入一个整数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 }
以上是关于深度优先排序(数字全排列)的主要内容,如果未能解决你的问题,请参考以下文章