zoukankan      html  css  js  c++  java
  • 全排列模板

    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);
        }
    } 
  • 相关阅读:
    Asp.net Report动态生成
    Select2控件不能自适应的解决办法
    Bootstrap table 行编辑导航
    android – 无法解析AppCompatActivity
    Aspnet mvc移除WebFormViewEngine
    Android串口开发
    阿里云OCR图片转换成文字识别调用
    EF6实现软删除
    Audio播放
    asp.net webapi 的Request如何获取参数
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12200510.html
Copyright © 2011-2022 走看看