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