大家好!
用java实现3个数的全部排序怎么写?
也就是说3个数有12种排序方法。怎么做?
谢谢大家。

解决方案 »

  1.   

    import java.util.*;
    public class Pai
    {
    public static int num=3;//修改num的值可求任意数字的全排列

    public static void main(String[] args)
    {
    List<Integer> list=new ArrayList<Integer>();
    paiXue(1,list);
    }
    public static void paiXue(int n,List<Integer> list)
    {
    if(n>num)
    {
    System.out.println(list);
    return ;
    }
    for(int i=0;i<=list.size();i++)
    {
    list.add(i,n);
    paiXue(n+1,list);
    list.remove(new Integer(n));
    }

    }
    }D:\javasample>java Pai
    [3, 2, 1]
    [2, 3, 1]
    [2, 1, 3]
    [3, 1, 2]
    [1, 3, 2]
    [1, 2, 3]
      

  2.   


    import   java.util.*;   
        
    public class   pailie 
    {
    public   static   String   c="abc";   
        private   static   int   []   used=new   int[100];   
        private   static   char   []   str=new   char[100];   
        private   static   void   Gen(int   s,int   len)   
        {   
           if(s==len)
           {
            String   outs=new   String(str);   
               System.out.println(outs.substring(0,len));   
               return;   
           } 
           int   i;   
           for(i=0;i<c.length();i++)
           {
            if(used[i]>0)continue;   
               used[i]=1;   
               str[s]=c.charAt(i);   
               Gen(s+1,len);   
               used[i]=0;   
           }   
        }
        public   static   void   main(String   []   args)   
        {   
          for(int i=0;i<c.length();i++)
        used[i]=0;    
          Gen(0,c.length());   
        }