创星网络[分享知识 传递快乐]

标题: java实现数组的所有组合 [打印本页]

作者: luinstein    时间: 2012-12-13 17:26
标题: java实现数组的所有组合
细节上需要改进。
  1. import java.util.*;
  2. public class Map {
  3. Vector<int[]> v = new Vector<int[]>();
  4. Vector<Integer> vv = new Vector<Integer>();
  5. Map() {
  6. int[] array = { 1, 2, 3, 4, 5 };
  7. Scanner s = new Scanner(System.in);
  8. int x = s.nextInt();
  9. pro(array, 0, x);
  10. for(int i=0;i<v.size();i++){
  11. int[] r=v.get(i);
  12. for(int j=0;j<r.length;j++){
  13. System.out.print(""+r[j]+",");
  14. }
  15. System.out.println();
  16. }
  17. }
  18. public void pro(int[] a, int start, int n) {
  19. if (n == 0) {
  20. int[] r = new int[vv.size()];
  21. for (int i = 0; i < r.length; i++) {
  22. r[i] = vv.get(i);
  23. }
  24. v.add(r);
  25. return;
  26. }
  27. if (start >= a.length) {
  28. return;
  29. }
  30. for (int i = start; i < a.length; i++) {
  31. vv.add(a[i]);
  32. pro(a, i + 1, n - 1);
  33. vv.remove(vv.size()-1);
  34. }
  35. }
  36. public static void main(String arg[]) {
  37. new Map();
  38. }
  39. }
复制代码





欢迎光临 创星网络[分享知识 传递快乐] (http://bbs.cxweb.com.cn/) Powered by Discuz! X3