您的位置:首页 > 编程语言 > Java开发

递归实现全排列(java版)

2016-11-29 14:01 197 查看
import java.util.Arrays;

public class test{  
   static int count = 0;  
   static void swap(int array[],int a, int b) {    
       int temp = array[a];    
       array[a]=array[b];    
       array[b]=temp;    
   }    

/*    static void swap(int a, int b) { //这种只是传递副本,交换副本,如果传递的是对象那就会直接交换。   
       int temp = a;    
       a=b;    
       b=temp;    
   }*/
   static void permutation(int[] arr, int a, int length){
       if(a == length){               
               ++count;
               System.out.println(Arrays.toString(arr));       
       }
       else{    
           for(int i = a; i <length; ++i){
               swap(arr,a,i);
               permutation(arr, a + 1, length);  
               swap(arr,a,i);    
           }    
       }    
   }  
   
   public static void main(String[] args) {    
       int [] str = {1,2,3,4,5,6,7,8,9};    
       permutation(str, 0, 9);    
       System.out.println(count);    
   }  

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: