zoukankan      html  css  js  c++  java
  • 全排列(java)

    dfs+visited

    import java.util.Scanner;
    
    public class Main {
      public static void dfs(int[] a, boolean[] vis, int[] tmp, int start){
        int len = a.length;
        if(start == len){
          if(tmp[0] == 0){
            return;		
          }else{
            for(int j : tmp){
              System.out.print(j + " ");
    	}
    	System.out.println();
          }
          }else{
            for(int i=0; i<len; i++){
    	  if(!vis[i]){
    	  tmp[start] = a[i];
    	  vis[i] = true;
    	  dfs(a, vis, tmp, start+1);
    	  vis[i] = false;
            }
          }
        }
      }
    
      public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str = s.nextLine();
        String[] strs = str.split(" ");
        int a[] = new int[strs.length];
        for(int i=0; i<strs.length; i++){
          a[i] = Integer.parseInt(strs[i]);
        }	
        int [] tmp = new int[a.length];
        boolean [] vis = new boolean[a.length];
        dfs(a, vis, tmp, 0);
      }
    }	
    

    dfs+swap

    import java.util.Scanner;
    
    public class Main2 {
      public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str = s.nextLine();
        String[] strs = str.split(" ");
        int a[] = new int[strs.length];
        for(int i=0; i<strs.length; i++){
          a[i] = Integer.parseInt(strs[i]);
        }
        dfs(a, 0);
      }
    	
      static void dfs(int a[], int start ){
        if(start == a.length){
          for(int i :a){
            System.out.print(i);
          }
          System.out.println();
          return;
        }	
        
        for(int i=start; i<a.length; i++){
          swap(a, i, start);
          dfs(a, start+1);
          swap(a, i, start);
        }
      }
    	
      static void swap(int[] a, int  i, int j){
        int tmp = a[i];
        a[i] = a[j];
        a[j] = tmp;
      }
    }
    
  • 相关阅读:
    文件管理
    字符编码
    字典练习,统计字符串中单词出现次数
    字典有关练习:购物车
    列表及列表操作方法
    字符串及用法
    变量,程序交互,基本数据类型
    /usr/bin/ld: i386:x86-64 architecture of input file `command.o' is incompatible with i386 output
    混合云存储系统开发总结
    小记6月27
  • 原文地址:https://www.cnblogs.com/bacmive/p/15085074.html
Copyright © 2011-2022 走看看