編程打印全排列

Java代碼

  1. 1.package org.jenfer.test;     
  2. 2.    
  3. 3.    
  4. 4./**    
  5. 5. * 求一組數的全排列    
  6. 6. * 比如123    
  7. 7. * 輸出:    
  8. 8. * 321    
  9. 9. * 231    
  10. 10. * 213    
  11. 11. * 312    
  12. 12. * 132    
  13. 13. * 123    
  14. 14. * @author zhoujh    
  15. 15. * 作者簡介:周劍華,武漢科技大學計算機碩士研究生    
  16. 16. *    
  17. 17. */    
  18. 18.public class ArrangeTest {     
  19. 19.    public static void main(String[] args) {     
  20. 20.        arrange("123");     
  21. 21.    }     
  22. 22.    
  23. 23.    /**    
  24. 24.     * 排列    
  25. 25.     * @param tab    
  26. 26.     */    
  27. 27.    public static void arrange(String tab) {     
  28. 28.        if(tab.length()<=1){     
  29. 29.            System.out.println("組合爲:" +tab);     
  30. 30.        }else{     
  31. 31.            arrangeHelper(""+tab.charAt(0),tab.substring(1));     
  32. 32.        }     
  33. 33.    }     
  34. 34.    
  35. 35.    /**    
  36. 36.     * 輔助類    
  37. 37.     * @param prefix    
  38. 38.     * @param suffix    
  39. 39.     */    
  40. 40.    private static void arrangeHelper(String prefix, String suffix) {     
  41. 41.        //打印結果     
  42. 42.        if(suffix.length()==1){     
  43. 43.            for (int i = 0; i < prefix.length()+1; i++) {     
  44. 44.                String partOne=prefix.substring(0,i);     
  45. 45.                String partTwo=prefix.substring(i,prefix.length());     
  46. 46.                System.out.println(partOne+suffix+partTwo);     
  47. 47.            }     
  48. 48.        }else{     
  49. 49.            for (int i = 0; i < prefix.length()+1; i++) {     
  50. 50.                String partOne=prefix.substring(0,i);     
  51. 51.                String partTwo=prefix.substring(i,prefix.length());     
  52. 52.                arrangeHelper(partOne+suffix.charAt(0)+partTwo,suffix.substring(1));     
  53. 53.            }     
  54. 54.        }     
  55. 55.    }     
  56. 56.}   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章