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

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     }
数字全排列

 

以上是关于深度优先排序(数字全排列)的主要内容,如果未能解决你的问题,请参考以下文章

蓝桥 :算法提高 排列数(深度优先)

python实现基础的深度优先搜索(DFS, depth first search)解决数的全排列问题

深度优先搜索思想初体验

深度搜索优先(全排列)

深度优先搜索 - 简单demo

BFS/DFS 广度/深度优先搜索