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


    输入一个整数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     }
    数字全排列
    基础学习
  • 相关阅读:
    Maven_自动化构建和构建环节
    Maven_运行时环境
    构建的概念
    Maven_真的需要吗?
    28)拷贝构造函数
    27)构造和析构函数
    26)多文件形式编写类步骤
    25)类的封装
    24)类
    23)函数重载和函数指针
  • 原文地址:https://www.cnblogs.com/qinmeizhen/p/6785045.html
Copyright © 2020-2023  润新知