• 全排列模板


    1.回溯法-dfs(sort后,然后dfs,数列是按字典序的)

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
           static int n;
           static final int max=1005;
           static boolean vis[]=new boolean [max];
           static int a[]=new int[max];
           static int b[]=new int[max];
           public static void dfs(int step){
                 if(step==n){
                     for(int i=0;i<n;i++) System.out.print(b[i]);
                     System.out.println();
                 }
                 for(int i=0;i<n;i++){
                       if(!vis[i]){
                             vis[i]=true;
                             b[step]=a[i];
                             dfs(step+1);
                             vis[i]=false;
                       }
                 }
           }
           public static void main(String[] args) {
                Scanner scan=new Scanner(System.in);
                n=scan.nextInt();
                for(int i=0;i<n;i++) a[i]=scan.nextInt();
                Arrays.sort(a,0,n);
                dfs(0); 
        }
    }

    2.递归法(不按字典序)

    import java.util.Arrays;
    
    public class Main {
         public static void print(int arr[],int n){
              for(int i=0;i<=n;i++)
                  System.out.print(arr[i]);
              System.out.println();
         }
         public static void swap(int arr[],int i,int p){
             int t=arr[i];
             arr[i]=arr[p];
             arr[p]=t;
         }
          public static void allSort(int arr[],int p,int q){
                if(p==q){
                     print(arr,q);
                }
                else{
                    for(int i=p;i<=q;i++){
                        swap(arr,i,p);
                        allSort(arr,p+1,q);
                        swap(arr,i,p);
                    }
                }
          }
         public static void main(String[] args) {
              int arr[]={1,2,3,4};
              Arrays.sort(arr,0,arr.length);
              allSort(arr,0,arr.length-1);
        }
    } 
  • 相关阅读:
    隐藏NGINX服务器名称 和版本号
    salt-grains
    格式化输出文本的方法
    递归例子
    yield 生成器例子
    Python基础之函数
    Python基础之面向对象
    Python基础之模块2
    Python基础之字符编码
    Python基础之文件操作
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12200510.html
Copyright © 2020-2023  润新知