zoukankan      html  css  js  c++  java
  • 深度优先排序(数字全排列) 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     }
    数字全排列
    基础学习
  • 相关阅读:
    Leetcode 532.数组中的K-diff数对
    Leetcode 529.扫雷游戏
    定增游戏(三)
    套利不归路(五)
    定增游戏(一)
    套利不归路(四)
    套利不归路(三)
    套利不归路(二)
    套利不归路(一)
    减持大逃亡(二)
  • 原文地址:https://www.cnblogs.com/qinmeizhen/p/6785045.html
Copyright © 2011-2022 走看看